教學課程 - 將應用程式部署至 Azure Kubernetes Service (AKS)

Kubernetes 提供適用於容器化應用程式的分散式系統。 您會將自己的應用程式和服務建置並部署至 Kubernetes 叢集,並讓叢集管理可用性和連線能力。

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

  • 更新 Kubernetes 指令清單檔案。
  • 在 Kubernetes 中執行應用程式。
  • 測試應用程式。

提示

透過 AKS,您可以使用下列方法來進行組態管理:

開始之前

在先前的教學課程中,您已將應用程式封裝成容器映像、將映射上傳至 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 登入伺服器名稱。

  1. 使用 命令取得 az acr list 登入伺服器位址,並查詢登入伺服器。

    az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
    
  2. 請確定您位於複製 的 aks-store-demo 目錄中,然後使用文字編輯器開啟指令清單檔案,例如 vi

    vi aks-store-quickstart.yaml
    
  3. 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
    ...
    
  4. 儲存並關閉檔案。 在 vi 中使用 :wq

執行應用程式

  1. 使用 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
    
  2. 使用 檢視 Pod 來檢查部署是否成功 kubectl

    kubectl get pods
    

測試應用程式

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

命令列

  1. 使用 kubectl get service 命令搭配 自變數來 --watch 監視進度。

    kubectl get service store-front --watch
    

    一開始,EXTERNAL-IP存放區前端服務的 會顯示為擱置中:

    store-front   LoadBalancer   10.0.34.242   <pending>     80:30676/TCP   5s
    
  2. EXTERNAL-IP 位址從擱置中變成實際的公用 IP 位址時,請使用 CTRL-C 停止 kubectl 監看式流程。

    下列範例輸出顯示指派給服務的有效公用 IP 位址:

    store-front   LoadBalancer   10.0.34.242   52.179.23.131   80:30676/TCP   67s
    
  3. 開啟網頁瀏覽器至您服務的外部IP位址,以檢視作用中的應用程式。

    AKS 市集範例應用程式的螢幕快照。

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

Azure 入口網站

流覽至您的 Azure 入口網站,以尋找您的部署資訊。

  1. 在 Azure 入口網站 上開啟您的資源群組

  2. 流覽至叢集的 Kubernetes 服務

  3. 選取 Services and Ingress 下方 Kubernetes Resources

  4. 複製存放區前端數據行中顯示的外部IP

  5. 將IP貼到瀏覽器並流覽您的市集頁面

    AKS 市集範例應用程式的螢幕快照。

下一步

在本教學課程中,您已將範例 Azure 應用程式部署到 AKS 中的 Kubernetes 叢集。 您已了解如何︰

  • 更新 Kubernetes 指令清單檔案。
  • 在 Kubernetes 中執行應用程式。
  • 測試應用程式。

在下一個教學課程中,您將瞭解如何在 Kubernetes 中使用 PaaS 服務進行具狀態工作負載。