使用容器和 AKS 進行開發

已完成

在上一個練習中,我們在 AKS 中建立了 Azure Container Registry 和 Kubernetes 叢集。 若要將容器映像部署至叢集,我們可以從 Cloud Shell 連線到叢集。

AKS 可以使用 Kubernetes 命令行工具或 kubectlAzure CLI 來管理部署。

開放原始碼的優勢

透過 kubectl 和 AKS,您可以利用 Argo CD 等開放原始碼工具,這是 Kubernetes 的持續傳遞工具,可建立基礎結構視覺效果。 Argo CD 有助於提升您對系統的信心,因為您可以實時顯示部署推出或調整作業。 如果發生錯誤,Argo CD 會藉由顯示問題發生的時間和位置,協助進行疑難解答。

Animation of Argo CD.

部署至叢集

我們可以使用 kubectl 將容器登錄中的容器部署到 Kubernetes 叢集。 雖然 Azure Container Registry 是容器映像的私人登錄,但我們在建立叢集時已將登錄整合至 AKS。 若要部署映像,我們需要建立包含部署指示的指令清單檔案。

建立部署資訊清單

指令清單檔案包含部署容器映像所需的所有資訊。 Kubernetes 資訊清單檔允許您以 YAML 格式描述您的部署,以簡化 Kubernetes 的管理。

Diagram of Kubernetes deployment.

將映像儲存在 Kubernetes

當我們將容器映像傳送至叢集,會裝載到 Pod 中。 容器會分組成 Pod,而 Pod 會調整為您想要的狀態。 Pod 會執行容器的執行個體,而且是能在 Kubernetes 中建立和管理的最小可部署運算單位。

Diagram of Kubernetes node hosting a pod.

這些 Pod 不具任何智慧。 每一個 Pod 都有各自的 IP 位址、網路規則和公開連接埠,而這些埠全都由 Kubernetes API 伺服器管理。

Kubernetes 健康情況檢查

Kubernetes 其自我修復能力的主要優點之一,其會將應用程式還原到您測試並儲存的確切實例。 當您復寫或儲存容器時,Kubernetes 可以檢查容器的健康情況,並視需要將其取代為原始復本。 當您可能需要多個容器實例分散到多個區域時,這在大規模時特別重要。

範例案例:我們的容器將執行的動作

Kubernetes API 伺服器會將 REST 訊息從智慧冰箱傳送至我們的節點容器。 智慧冰箱會將 REST 訊息傳送到雲端,AKS 將接收它們。 AKS 會將訊息傳送至 Node.js 容器的執行個體。

容器會執行程式來處理訊息,然後將訊息傳送至管理 Web 應用程式。

Diagram of your current architecture.