教學課程 - 將應用程式部署至 Azure Kubernetes Service (AKS)
Kubernetes 提供適用於容器化應用程式的分散式系統。 您會將自己的應用程式和服務建置並部署至 Kubernetes 叢集,並讓叢集管理可用性和連線能力。
在本教學課程中,您會將範例應用程式部署至 Kubernetes 叢集的第七部分。 您將學習如何:
- 更新 Kubernetes 指令清單檔案。
- 在 Kubernetes 中執行應用程式。
- 測試應用程式。
提示
透過 AKS,您可以使用下列方法來進行組態管理:
GitOps:啟用叢集狀態的宣告,以自動套用至叢集。 若要瞭解如何使用 GitOps 搭配 AKS 叢集部署應用程式,請參閱 GitOps with Flux v2 教學課程中 Azure Kubernetes Service 叢集的必要條件。
DevOps:可讓您使用持續整合 (CI) 和持續傳遞來建置、測試及部署 (CD)。 若要查看如何使用 DevOps 搭配 AKS 叢集部署應用程式的範例,請參閱 使用 Azure Pipelines 或 GitHub Actions 建置並部署至 AKS 以部署至 Kubernetes。
開始之前
在先前的教學課程中,您已將應用程式封裝成容器映像、將映射上傳至 Azure Container Registry,並建立 Kubernetes 叢集。 若要完成本教學課程,您需要預先建立的 aks-store-quickstart.yaml
Kubernetes 指令清單檔案。 此檔案已從 教學課程 1 - 準備 AKS 的應用程式原始碼中下載。
本教學課程需要 Azure CLI 2.0.53 版或更新版本。 使用 az --version
檢查您的版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI。
更新資訊清單檔案
在這些教學課程中,您的 Azure Container Registry (ACR) 實例會儲存範例應用程式的容器映像。 若要部署應用程式,您必須更新 Kubernetes 指令清單檔中的映像名稱,以包含您的 ACR 登入伺服器名稱。
使用 命令取得
az acr list
登入伺服器位址,並查詢登入伺服器。az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
請確定您位於複製 的 aks-store-demo 目錄中,然後使用文字編輯器開啟指令清單檔案,例如
vi
。vi aks-store-quickstart.yaml
image
將 ghcr.io/azure-samples 取代為您的 ACR 登入伺服器名稱,以更新容器的屬性。containers: ... - name: order-service image: <acrName>.azurecr.io/aks-store-demo/order-service:latest ... - name: product-service image: <acrName>.azurecr.io/aks-store-demo/product-service:latest ... - name: store-front image: <acrName>.azurecr.io/aks-store-demo/store-front:latest ...
儲存並關閉檔案。 在
vi
中使用:wq
。
執行應用程式
使用
kubectl apply
命令部署應用程式,其會剖析指令清單檔,並建立定義的 Kubernetes 物件。kubectl apply -f aks-store-quickstart.yaml
下列範例輸出顯示已成功在 AKS 叢集中建立的資源:
deployment.apps/rabbitmq created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
使用 檢視 Pod 來檢查部署是否成功
kubectl
kubectl get pods
測試應用程式
當應用程式執行時,Kubernetes 服務會將應用程式前端公開至網際網路。 此程序可能需要幾分鐘才能完成。
命令列
使用
kubectl get service
命令搭配 自變數來--watch
監視進度。kubectl get service store-front --watch
一開始,
EXTERNAL-IP
存放區前端服務的 會顯示為擱置中:store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
EXTERNAL-IP
位址從擱置中變成實際的公用 IP 位址時,請使用CTRL-C
停止kubectl
監看式流程。下列範例輸出顯示指派給服務的有效公用 IP 位址:
store-front LoadBalancer 10.0.34.242 52.179.23.131 80:30676/TCP 67s
開啟網頁瀏覽器至您服務的外部IP位址,以檢視作用中的應用程式。
如果應用程式未載入,則可能是映像登錄的授權問題。 若要檢視容器的狀態,請使用 kubectl get pods
命令。 如果您無法提取容器映像,請參閱 從 Azure Kubernetes Service 向 Azure Container Registry 進行驗證。
Azure 入口網站
流覽至您的 Azure 入口網站,以尋找您的部署資訊。
在 Azure 入口網站 上開啟您的資源群組
流覽至叢集的 Kubernetes 服務
選取
Services and Ingress
下方Kubernetes Resources
複製存放區前端數據行中顯示的外部IP
將IP貼到瀏覽器並流覽您的市集頁面
下一步
在本教學課程中,您已將範例 Azure 應用程式部署到 AKS 中的 Kubernetes 叢集。 您已了解如何︰
- 更新 Kubernetes 指令清單檔案。
- 在 Kubernetes 中執行應用程式。
- 測試應用程式。
在下一個教學課程中,您將瞭解如何在 Kubernetes 中使用 PaaS 服務進行具狀態工作負載。