教學課程:在由 Azure Arc 啟用的 AKS 中部署應用程式

適用於:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS

當您使用 Azure Arc 啟用 Azure Kubernetes Service 時,您可以將自己的應用程式和服務建置並部署至 Kubernetes 叢集。Kubernetes 提供容器化應用程式的分散式平臺。 您可以讓叢集管理可用性和連線能力。

本教學課程第七部分說明如何將範例應用程式部署至 AKS 中的 Kubernetes 叢集。 您將學習如何:

  • 更新 Kubernetes 資訊清單檔
  • 在 Kubernetes 中部署應用程式
  • 測試應用程式

稍後的教學課程說明如何調整和更新此應用程式。

本教學課程假設您對 Kubernetes 概念有基本了解。

開始之前

先前的教學課程說明如何將應用程式封裝至容器映像,然後將映射上傳至 Azure Container Registry,並建立 Kubernetes 叢集。

若要完成本教學課程,您需要預先建立的 azure-vote-all-in-one-redis.yaml Kubernetes 指令清單檔。 在先前的教學課程中,此檔案已連同應用程式原始程式碼一起下載。 確認您已複製存放庫,且您已將目錄變更為複製的存放庫。 如果您尚未完成這些步驟,請從教學課程 1 - Create 容器映射開始。

本教學課程需要 Azure CLI 2.0.53 版或更新版本。 執行 az --version 以尋找版本。 如果您需要安裝或升級 Azure CLI,請參閱 安裝 Azure CLI

更新資訊清單檔

在這些教學課程中,Azure Container Registry 實例會儲存範例應用程式的容器映像。 若要部署應用程式,您必須更新 Kubernetes 指令清單檔中的映像名稱,以包含容器登錄登入伺服器名稱。

使用 az acr list 命令取得 Azure Container Registry 登入伺服器名稱,如下所示:

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

您在第一個教學課程中複製之 GitHub 存放庫中的範例指令清單檔案會使用 microsoft 的登入伺服器名稱。 請確定您位於複製的 azure-voting-app-redis 目錄中,然後使用文本編輯器開啟指令清單檔案,例如 [記事本]:

notepad azure-vote-all-in-one-redis.yaml

以您的 Azure Container Registry 登入伺服器名稱取代 microsoft。 您可以在資訊清單檔的第 60 行找到映像名稱。 下列範例顯示預設映像名稱:

containers:
- name: azure-vote-front
  image: mcr.microsoft.com/azuredocs/azure-vote-front:v1

提供您自己的 Azure Container Registry 登入伺服器名稱,讓您的指令清單檔看起來像下列範例:

containers:
- name: azure-vote-front
  image: <acrName>.azurecr.io/azure-vote-front:v1

儲存並關閉檔案。

部署應用程式

若要部署應用程式,請使用 kubectl apply 命令。 此命令會剖析資訊清單檔,並建立已定義的 Kubernetes 物件。 指定範例資訊清單檔,如下列範例所示:

kubectl apply -f azure-vote-all-in-one-redis.yaml

下列範例輸出顯示已成功在 Kubernetes 叢集中建立的資源:

$ kubectl apply -f azure-vote-all-in-one-redis.yaml

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created

測試應用程式

當應用程式執行時,Kubernetes 服務會將應用程式前端公開至因特網。 此程序可能需要幾分鐘才能完成。

若要監視進度,請使用 kubectl get service 命令搭配 --watch 自變數:

kubectl get service azure-vote-front --watch

一開始,azure-vote-front 服務的 EXTERNAL-IP 會顯示為 pending

azure-vote-front   LoadBalancer   10.0.34.242   <pending>     80:30676/TCP   5s

EXTERNAL-IP 位址從擱置變更為實際的公用 IP 位址時,請使用 CTRL-C 停止 kubectl watch 程式。 下列範例輸出會顯示已指派給服務的有效公用 IP 位址:

azure-vote-front   LoadBalancer   10.0.34.242   52.179.23.131   80:30676/TCP   67s

若要查看應用程式的實際運作情況,請開啟網頁瀏覽器並瀏覽至服務的外部 IP 位址:

螢幕擷取畫面顯示在本機網頁瀏覽器開啟 AKS 叢集中執行的 Azure Voting 應用程式

如果應用程式並未載入,可能是因為您的映像登錄發生授權問題。 若要檢視容器的狀態,請使用 kubectl get pods 命令。 如果無法提取容器映像,請參閱從 Azure Kubernetes Service 對 Azure Container Registry 進行驗證

後續步驟

在本教學課程中,您已將範例 Azure 投票應用程式部署至 Arc 所啟用 AKS 中的 Kubernetes 叢集。您已瞭解如何:

  • 更新 Kubernetes 資訊清單檔
  • 在 Kubernetes 中執行應用程式
  • 測試應用程式

請繼續進行下一個教學課程,以了解如何調整 Kubernetes 應用程式和基礎 Kubernetes 基礎架構。