共用方式為


快速入門:使用 Azure Developer CLI 部署 Azure Kubernetes Service (AKS) 叢集

Azure Kubernetes Service (AKS) 是受控 Kubernetes 服務,可讓您快速部署及管理叢集。 在本快速入門中,您將了解如何:

  • 下載並安裝 Azure Developer CLI (azd)。
  • 從 Azure Developer CLI 範本 (azd 範本) 複製應用程式。
  • 使用 Azure Developer CLI (azd) 部署 AKS 叢集。
  • 使用一組可模擬零售應用程式的微服務,執行範例多容器應用程式。
  • 刪除和清除從 azd 範本建立的容器。

注意

若要開始快速佈建 AKS 叢集,本文包含僅針對評估目的部署具有預設設定值之叢集的步驟。 在部署生產就緒叢集之前,建議您先熟悉我們的基準參考架構,考慮其如何符合您的業務需求。

開始之前

本快速入門假設您已有 Kubernetes 概念的基本知識。 如需詳細資訊,請參閱 Azure Kubernetes Services (AKS) 的 Kubernetes 核心概念

檢閱應用程式程式碼

您可檢閱 Azure-Samples/aks-store-demo GitHub 存放庫中的應用程式程式碼。

快速入門應用程式包含下列 Kubernetes 部署和服務:

顯示 Azure 市集範例架構的圖表。

  • 市集前端:供客戶檢視產品和下單的 Web 應用程式。
  • 產品服務:顯示產品資訊。
  • 訂單服務:下單。
  • Rabbit MQ:訂單佇列的訊息佇列。

注意

除非是針對生產用途的永續性儲存,否則不建議執行具狀態容器,例如 Rabbit MQ。 這裡使用具狀態容器是為了簡單起見,但我們建議改用受控服務,例如 Azure Cosmos DB 或 Azure 服務總線。

複製 Azure Developer CLI 範本

  1. 使用 命令搭配 azd init 參數,從 --template 存放庫複製 AKS 存放區示範範本。

    azd init --template Azure-Samples/aks-store-demo
    
  2. 輸入僅使用英數位元和連字號的專案環境名稱,例如 aks-azdqs-1

    Enter a new environment name: aks-azdqs-1
    

登入您的 Azure 雲端帳戶

azd 範本包含建立服務所需的所有程式碼,但您必須登入您的 Azure 帳戶,才能在 AKS 上裝載應用程式。

  1. 使用 azd auth login 命令登入您的帳戶。

    azd auth login
    
  2. 複製輸出中顯示的裝置程式碼,然後按 Enter 以登入。

    Start by copying the next code: XXXXXXXXX
    Then press enter and continue to log in from your browser...
    

    重要

    如果您使用網路外虛擬機器或 GitHub Codespace,某些 Azure 安全性策略會在用來利用 azd auth login 登入時造成衝突。 如果您在這裡遇到問題,可以遵循以下提供的 azd auth 因應措施,這牽涉到使用對執行 [curl][az-auth-login] 之後重新導向至 localhost URL 的 azd auth login 要求。

  3. 在貴組織的登入頁面上,使用您的認證進行驗證。

  4. 確認您嘗試從 Azure CLI 進行連線。

  5. 確認「裝置程式碼驗證已完成。 登入 Azure」訊息出現在您的原始終端中。

    Waiting for you to complete authentication in the browser...
    Device code authentication completed.
    Logged in to Azure.
    

azd auth 因應措施

此因應措施會要求您安裝 Azure CLI

  1. 開啟終端機視窗,並使用 az login 命令利用 Azure CLI 登入,並將 --scope 參數設定為 https://graph.microsoft.com/.default

    az login --scope https://graph.microsoft.com/.default
    

    您應該重新導向至新索引標籤中的驗證頁面,以建立瀏覽器存取權杖,如下列範例中所示:

    https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?clientid=<your_client_id>.
    
  2. 嘗試使用 azd auth login 登入之後,複製您所收到網頁的 localhost URL。

  3. 在新終端機視窗中,使用下列 curl 要求進行登入。 請務必將 <localhost> 預留位置取代為您在上一個步驟中複製的 localhost URL。

    curl <localhost>
    

    成功的登入會輸出 HTML 網頁,如下列範例所示:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="refresh" content="60;url=https://docs.microsoft.com/cli/azure/">
        <title>Login successfully</title>
        <style>
            body {
                font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            }
    
            code {
                font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
                display: inline-block;
                background-color: rgb(242, 242, 242);
                padding: 12px 16px;
                margin: 8px 0px;
            }
        </style>
    </head>
    <body>
        <h3>You have logged into Microsoft Azure!</h3>
        <p>You can close this window, or we will redirect you to the <a href="https://docs.microsoft.com/cli/azure/">Azure CLI documentation</a> in 1 minute.</p>
        <h3>Announcements</h3>
        <p>[Windows only] Azure CLI is collecting feedback on using the <a href="https://learn.microsoft.com/windows/uwp/security/web-account-manager">Web Account Manager</a> (WAM) broker for the login experience.</p>
        <p>You may opt-in to use WAM by running the following commands:</p>
        <code>
            az config set core.allow_broker=true<br>
            az account clear<br>
            az login
        </code>
    </body>
    </html>
    
  4. 關閉目前的終端機,並開啟原始終端機。 您應該會看到訂用帳戶的 JSON 清單。

  5. 複製您所要使用訂用帳戶的 id 欄位。

  6. 使用 az account set (部分機器翻譯) 命令來設定您的訂用帳戶。

    az account set --subscription <subscription_id>
    

建立及部署叢集的資源

azd 會執行 azd-hooks 資料夾內的所有勾點,以預先註冊、佈建及部署應用程式服務。

本快速入門的 azd 範本會建立具有 AKS 叢集和 Azure Key Vault 的新資源群組。 金鑰保存庫會儲存用戶端秘密,並在 pets 命名空間中執行服務。

  1. 使用 azd up 命令建立所有應用程式資源。

    azd up
    
  2. 選取您計費使用量的 Azure 訂用帳戶。

    ? Select an Azure Subscription to use:  [Use arrows to move, type to filter]
    > 1. My Azure Subscription (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
    
  3. 選取要部署應用程式的目標區域。

    Select an Azure location to use:  [Use arrows to move, type to filter]
      1.  (South America) Brazil Southeast (brazilsoutheast)
      2.  (US) Central US (centralus)
      3.  (US) East US (eastus)
    > 43. (US) East US 2 (eastus2)
      4.  (US) East US STG (eastusstg)
      5.  (US) North Central US (northcentralus)
      6.  (US) South Central US (southcentralus)
    

    azd 會自動執行佈建前和佈建後命令,以建立應用程式的資源。 此程序可能需要幾分鐘才能完成。 完成後,您看到的輸出應該會類似下列範例:

    SUCCESS: Your workflow to provision and deploy to Azure completed in 9 minutes 40 seconds.
    

測試應用程式

當應用程式執行時,Kubernetes 服務會將應用程式前端公開至網際網路。 此程序可能需要幾分鐘才能完成。 若要管理 Kubernetes 叢集,請使用 Kubernetes 命令列用戶端 kubectlkubectl 已經在 azd up 期間安裝。

  1. 使用 pets 命令將您的命名空間設定為示範命名空間 kubectl set-context

    kubectl config set-context --current --namespace=pets
    
  2. 使用 kubectl get pods 命令檢視已部署 Pod 的狀態。 請先確認全部 Pod 都是 Running 後再繼續進行。

    kubectl get pods
    
  3. 檢查存放區前端應用程式的公用 IP 位址,並使用 kubectl get service 命令搭配 --watch 引數監視進度。

    kubectl get service store-front --watch
    

    服務的 store-front 輸出一開始會顯示為擱置

    NAME          TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
    store-front   LoadBalancer   10.0.100.10   <pending>     80:30025/TCP   4h4m
    
  4. 當 EXTERNAL-IP 位址從暫止變成實際的公用 IP 位址時,請使用 CTRL-C 停止 kubectl 監看式流程。

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

    NAME          TYPE           CLUSTER-IP    EXTERNAL-IP    PORT(S)        AGE
    store-front   LoadBalancer   10.0.100.10   20.62.159.19   80:30025/TCP   4h5m
    
  5. 若要查看 Azure 市集應用程式的實際運作情況,請開啟網頁瀏覽器並瀏覽至服務的外部 IP 位址。

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

選取叢集

完成快速入門之後,請清除不必要的資源以避免 Azure 費用。

  1. 使用 azd down 命令,刪除在快速入門中建立的所有資源。

    azd down
    
  2. 輸入 y 並按 Enter,確認您決定從訂用帳戶中移除所有已使用的資源。

    ? Total resources to delete: 14, are you sure you want to continue? (y/N)
    
  3. 如果適用,請鍵入 y 並按 Enter,允許清除重複使用快速入門變數。

    [Warning]: These resources have soft delete enabled allowing them to be recovered for a period or time after deletion. During this period, their names may not be reused. In the future, you can use the argument --purge to skip this confirmation.
    
    ? Would you like to permanently delete these resources instead, allowing their names to be reused? (y/N)
    

    刪除資源後,您應該會看到類似下列範例的輸出:

    SUCCESS: Your application was removed from Azure in 14 minutes 30 seconds.
    

注意

這個範例應用程式僅供示範之用,並不代表 Kubernetes 應用程式的所有最佳做法。 如需針對生產使用 AKS 建立完整解決方案的指引,請參閱 AKS 解決方案指引

下一步

在本快速入門中,您已部署 Kubernetes 叢集,接著將簡單多容器應用程式部署到此叢集。 這個範例應用程式僅供示範之用,並不代表 Kube 應用程式的全部最佳做法。 如需針對生產使用 AKS 建立完整解決方案的指引,請參閱 AKS 解決方案指引

若要深入了解 AKS,並逐步完成部署範例的完整程式碼,請繼續 Kube 叢集教學課程。