共用方式為


教學課程:將應用程式部署至 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 目錄,然後使用文字編輯器開啟 aks-store-quickstart.yaml 資訊清單檔。

  3. 使用您的 ACR 登入伺服器名稱取代 ghcr.io/azure-samples,以更新容器的 image 屬性。

    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. 儲存並關閉檔案。

執行應用程式

  1. 使用 kubectl apply 命令來部署應用程式,其會剖析資訊清單檔,並建立已定義的 Kubernetes 物件。

    kubectl apply -f aks-store-quickstart.yaml
    

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

    statefulset.apps/rabbitmq created
    configmap/rabbitmq-enabled-plugins 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. 使用 kubectl 檢視 Pod,檢查部署是否成功

    kubectl get pods
    

測試應用程式

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

命令列

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

    kubectl get service store-front --watch
    

    一開始,store-front 服務的 EXTERNAL-IP 會顯示為 <pending>

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

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

    store-front   LoadBalancer   10.0.34.242   52.179.23.131   80:30676/TCP   67s
    
  3. 透過開啟網頁瀏覽器並瀏覽至服務的外部 IP 位址,檢視應用程式的實際運作情況:http://<external-ip>

    AKS 市集範例應用程式的螢幕擷取畫面。

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

Azure 入口網站

瀏覽至 Azure 入口網站以尋找部署資訊。

  1. 在 Azure 入口網站中,開啟資源群組

  2. 瀏覽至叢集的 Kubernetes 服務

  3. 選取 [Kubernetes Resources] 底下的 [Services and Ingress]

  4. 複製 store-front 服務資料行中顯示的外部 IP

  5. 將 IP 貼到瀏覽器中並造訪您的存放區頁面

    AKS 市集範例應用程式的螢幕擷取畫面。

清除資源

由於您已驗證應用程式的功能,現在可以從應用程式中移除叢集。 我們將於下一個教學課程中再次部署該應用程式。

  1. 使用 [docker-compose down] [docker-compose-down] 命令停止並移除容器執行個體和資源。

    kubectl delete -f aks-store-quickstart.yaml
    
  2. 檢查是否已移除所有應用程式 Pod:

    kubectl get pods
    

下一步

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

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

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