如何提供domain-name給azure僅提供ip-address的服務

如何提供Domain Name給Azure僅提供IP Address的服務

我知道,這個題目很奇怪。原因來自於一場週未神奇的Debug之旅。

週末我們進行系統更新,其中包含了Kubernetes叢集。測試區很正常的更新完成,但正式區有個系統,在更新之後不正常,在 kubectl看來Pod、Service都很正常,但就是會產生連線錯誤。查了好幾個小時,終於發現是核心calico-apiserver有問題,根本跟原本的Pod與Service無關。因為是Calico的問題,造成內部網路的運作不正常,心想,正式區又是核心網路,怎麼會出事呢?

我心都涼了。

讓地端Kubernetes存取私有Registry-以Azure Container Registry為例

讓地端Kubernetes存取私有Registry-以Azure Container Registry為例

上一篇,是直接透過各種 containerd CLI 來存取 Private Registry 裡的 Images。其實這只算一個 PoC,因為要先學習如何存取私有 Registry。有了之前的經驗,那麼接下來的大目標是讓 Kubernetes 的 nodes 也能存取私有 Registry。之前提到,Kubernetes 本身是使用 crictl CLI 來與 containerd 溝通。

crictl pull --creds "UserName:Password" "ImageDetail"

但我們用 Kubernetes 時不可能這樣下指令,必須透過一些其他方法。Kubernetes 本身可以吃 docker 的 config.json 組態來使用。對「docker 的 config.json 組態」有沒有很熟悉的感覺。對,在上一篇我們透過 nerdctl login 協助,它預設會把相關組態儲存下來到 /root/.docker/config.json,這不就是我們需要的嗎。

containerd CLI - ctr、nerdctl、crictl 與 Azure Container Registry 存取設定

containerd CLI - ctr、nerdctl、crictl 與 Azure Container Registry 存取設定

在安裝完containerD之後,有時需要直接與containerd溝通,這時就需要透過CLI,文件共介紹 ctr、nerdctl、crictl 三套 CLI,CLI 與 containerd 的關係,就像 dockerd 與 docker CLI 差不多意思。除了溝通之外,由於我們 Registry 是採用Azure Container Registry,因此另一個重點是要知道如何設定以存取預設 docker.io 以外的 Registry。

教你5分鐘在Ubuntu 22.04架設Kubernetes Cluster

教你5分鐘在Ubuntu 22.04架設Kubernetes Cluster

話說[前篇]處理好Notebook、Hyper-V網路與VM網路之間的問題之後,在MicroK8s的幫助下,從Kubernetes到Kubernetes Cluster幾乎都是一行指令就能完成。

安裝MicroK8s:

sudo snap install microk8s --classic --channel=1.25

建立與加入Cluster:

microk8s add-node

方便代表看不到細節。因為想要瞭解細節,因此又花了一些時間學習如何從無到有設定與安裝Kubernetes與建置Kubernetes Cluster。