共用方式為


快速入門:部署 Azure Kubernetes Service (AKS) Automatic 叢集 (預覽)

適用於:✔️ AKS Automatic (預覽)

Azure Kubernetes Service (AKS) Automatic (預覽) 可為開發人員、DevOps 工程師和平台工程師提供最簡單的受控 Kubernetes 體驗。 AKS Automatic 將 AKS 叢集設定和作業自動化,並內嵌最佳做法組態,非常適合新式和 AI 應用程式。 任何技能等級的使用者都可以受益於其應用程式 AKS Automatic 的安全性、效能和可靠性。

在本快速入門中,您將了解如何:

  • 部署 AKS Automatic 叢集。
  • 使用一組微服務和 Web 前端模擬零售情節,執行範例多容器應用程式。

開始之前

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

  • 本文需要 Azure CLI 2.57.0 版或更新版本。 若您使用的是 Azure Cloud Shell,即已安裝最新版本。
  • 本文需要 aks-preview Azure CLI 擴充功能 9.0.0b4 版或更新版本。
  • 如果您有多個 Azure 訂用帳戶,請使用 az account set 命令來選取應對資源計費的適當訂用帳戶識別碼。
  • 在 Azure 訂用帳戶中註冊 AutomaticSKUPreview 功能。
  • 建立叢集的身分識別也應該在資源群組上具有下列許可權:
    • Microsoft.Authorization/policyAssignments/write
    • Microsoft.Authorization/policyAssignments/read
  • AKS 自動叢集需要在支援至少 3 個可用性區域的 Azure 區域中部署。
  • 若要部署 Bicep 檔案,您需要對即將建立的資源具備寫入權限,並可存取 Microsoft.Resources/deployments 資源類型上的所有作業。 例如,若要建立虛擬機器,您需要 Microsoft.Compute/virtualMachines/writeMicrosoft.Resources/deployments/* 權限。 如需角色與權限的清單,請參閱 Azure 內建角色

重要

AKS 自動嘗試根據訂用帳戶中可用的容量,動態選取節點集區的虛擬機 SKU system 。 請確定您的訂用帳戶有 16 個 vCPU 的配額,這是您要部署叢集之區域中下列任何一個 SKU 的配額:Standard_D4pds_v5Standard_D4lds_v5、Standard_D4ads_v5、Standard_D4ds_v5、Standard_D4d_v5、Standard_D4d_v4Standard_DS3_v2、Standard_DS12_v2。 您可以檢視特定 VM 系列的配額,並透過 Azure 入口網站提交增加配額要求

安裝 aks-preview Azure CLI 延伸模組

重要

AKS 預覽功能可透過自助服務,以加入方式使用。 預覽會以「現狀」和「可供使用時」提供,其其不受服務等級協定和有限瑕疵擔保所保護。 客戶支援部門會盡最大努力,部分支援 AKS 預覽。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:

若要安裝 aks-preview 延伸模組,請執行下列命令:

az extension add --name aks-preview

執行下列命令,以更新為發行的最新版延伸模組:

az extension update --name aks-preview

註冊功能旗標

若要在預覽中使用 AKS 自動,請使用 az feature register 命令註冊下列旗標。

az feature register --namespace Microsoft.ContainerService --name AutomaticSKUPreview

使用 az feature show 命令以驗證註冊狀態。 狀態需要幾分鐘的時間才會顯示「已註冊」

az feature show --namespace Microsoft.ContainerService --name AutomaticSKUPreview

當狀態顯示為 [已註冊] 時,請使用 az provider register 命令重新整理 Microsoft.ContainerService 資源提供者的註冊:

az provider register --namespace Microsoft.ContainerService

建立資源群組

Azure 資源群組是部署及管理 Azure 資源所在的邏輯群組。

下列範例會在 eastus 位置建立名為 myResourceGroup 的資源群組。

使用 az group create 命令來建立資源群組。

az group create --name myResourceGroup --location eastus

下列輸出範例類似於成功建立資源群組:

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

建立 AKS Automatic 叢集

如欲建立 AKS Automatic 叢集,請使用 az aks create 命令。 下列範例會建立名為 myAKSAutomaticCluster 且已啟用受控 Prometheus 和容器深入解析整合的叢集。

az aks create \
    --resource-group myResourceGroup \
    --name myAKSAutomaticCluster \
    --sku automatic

幾分鐘後,命令會完成並傳回關於叢集的 JSON 格式資訊。

連線至叢集

若要管理 Kubernetes 叢集,請使用 Kubernetes 命令列用戶端 kubectl。 如果您使用 Azure Cloud Shell,則 kubectl 已安裝。 若要在本機安裝 kubectl,請執行 az aks install-cli 命令。 AKS Automatic 叢集是使用適用於 Kube 角色型存取控制 (RBAC) 的 Microsoft Entra ID 進行設定。 當您使用 Azure CLI 建立叢集時,會為使用者指派 Azure Kubernetes Service RBAC Cluster Admin內建角色

使用 az aks get-credentials 命令,設定 kubectl 連線到 Kubernetes 叢集。 此命令會下載憑證並設定 Kubernetes CLI 以供使用。

az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster

使用 kubectl get nodes 命令來確認與叢集的連線。 此命令會傳回叢集節點的清單。

kubectl get nodes

下列範例輸出將示範如何要求您登入。

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

登入之後,下列範例輸出會顯示受控系統節點集區。 確定節點的狀態為就緒

NAME                                STATUS   ROLES   AGE     VERSION
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

建立自動 Kube 叢集

  1. 若要建立 AKS Automatic 叢集,請搜尋 Kubernetes Services,然後從下拉式選項中選取 [自動 Kube 叢集]

    在 Azure 入口網站中建立 AKS Automatic 叢集之進入點的螢幕擷取畫面。

  2. 在 [基本] 索引標籤上,填入開始使用所需的所有必要欄位:[訂用帳戶]、[資源群組]、[叢集名稱] 和 [區域]

    Azure 入口網站中 AKS Automatic 叢集的 [建立 - 基本概念] 索引標籤螢幕擷取畫面。

    如果不符合必要條件,且訂用帳戶需要註冊預覽旗標,則 [訂用帳戶] 欄位下會顯示錯誤:

    在 Azure 入口網站中建立 AKS Automatic 叢集時,訂用帳戶沒有註冊預覽旗標時所顯示錯誤的螢幕擷取畫面。

  3. 在 [監視] 索引標籤上,從 Azure 監視器、受控 Prometheus、受控 Grafana 和/或設定警示中選擇監視組態。 新增標籤 (選擇性),然後繼續建立叢集。

    在 Azure 入口網站中建立 AKS Automatic 叢集時,[監視] 索引標籤的螢幕擷取畫面。

  4. 開始從 GitHub 設定您的第一個應用程式,並設定自動化部署管線。

    在 Azure 入口網站中建立 AKS Automatic 叢集之後,[概觀] 刀鋒視窗上 [開始使用] 索引標籤的螢幕擷取畫面。

連線至叢集

若要管理 Kubernetes 叢集,請使用 Kubernetes 命令列用戶端 kubectl。 如果您使用 Azure Cloud Shell,則 kubectl 已安裝。 若要在本機安裝 kubectl,請執行 az aks install-cli 命令。 AKS Automatic 叢集是使用適用於 Kube 角色型存取控制 (RBAC) 的 Microsoft Entra ID 進行設定。 當您使用 Azure 入口網站建立叢集時,會為使用者指派 Azure Kubernetes Service RBAC Cluster Admin內建角色

使用 az aks get-credentials 命令,設定 kubectl 連線到 Kubernetes 叢集。 此命令會下載憑證並設定 Kubernetes CLI 以供使用。

az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster

使用 kubectl get nodes 命令來確認與叢集的連線。 此命令會傳回叢集節點的清單。

kubectl get nodes

下列範例輸出將示範如何要求您登入。

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

登入之後,下列範例輸出會顯示受控系統節點集區。 確定節點的狀態為就緒

NAME                                STATUS   ROLES   AGE     VERSION
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

建立資源群組

Azure 資源群組是部署及管理 Azure 資源所在的邏輯群組。 建立資源群組時,系統會提示您指定位置。 此位置是資源群組中繼資料的儲存位置,如果未在資源建立期間指定另一個區域,此位置也會是您在 Azure 中執行資源的位置。

下列範例會在 eastus 位置建立名為 myResourceGroup 的資源群組。

使用 az group create 命令來建立資源群組。

az group create --name myResourceGroup --location eastus

下列輸出範例類似於成功建立資源群組:

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

檢閱 Bicep 檔案

此 Bicep 檔案會定義 AKS Automatic 叢集。 在預覽期間,您必須指定系統 nodepool 代理程式集區設定檔。

@description('The name of the managed cluster resource.')
param clusterName string = 'myAKSAutomaticCluster'

@description('The location of the managed cluster resource.')
param location string = resourceGroup().location

resource aks 'Microsoft.ContainerService/managedClusters@2024-03-02-preview' = {
  name: clusterName
  location: location  
  sku: {
	name: 'Automatic'
  }
  properties: {
    agentPoolProfiles: [
      {
        name: 'systempool'
        mode: 'System'
	count: 3
      }
    ]
  }
  identity: {
    type: 'SystemAssigned'
  }
}

如需 Bicep 檔案中所定義資源的詳細資訊,請參閱 Microsoft.ContainerService/managedClusters 參考。

部署 Bicep 檔案

  1. 將 Bicep 檔案以 main.bicep 儲存至本機電腦。

    重要

    Bicep 檔案會將 clusterName 參數設定為字串 myAKSAutomaticCluster。 如果您想要使用不同的叢集名稱,請務必先將字串更新為您慣用的叢集名稱,再將檔案儲存到您的電腦。

  2. 使用 Azure CLI 部署 Bicep 檔案。

    az deployment group create --resource-group myResourceGroup --template-file main.bicep
    

    建立 AKS 叢集需要幾分鐘的時間。 請等到叢集成功部署後,再移至下一個步驟。

連線至叢集

若要管理 Kubernetes 叢集,請使用 Kubernetes 命令列用戶端 kubectl。 如果您使用 Azure Cloud Shell,則 kubectl 已安裝。 若要在本機安裝 kubectl,請執行 az aks install-cli 命令。 AKS Automatic 叢集是使用適用於 Kube 角色型存取控制 (RBAC) 的 Microsoft Entra ID 進行設定。 當您使用 Bicep 建立叢集時,您必須將其中一個內建角色,例如 Azure Kubernetes Service RBAC ReaderAzure Kubernetes Service RBAC WriterAzure Kubernetes Service RBAC AdminAzure Kubernetes Service RBAC Cluster Admin 指派給使用者,範圍設定為叢集或特定命名空間。 此外,請確定您的使用者具有 Azure Kubernetes Service Cluster User 內建角色,如此才能執行 az aks get-credentials,然後使用 az aks get-credentials 命令取得 AKS 叢集的 kubeconfig。

使用 az aks get-credentials 命令,設定 kubectl 連線到 Kubernetes 叢集。 此命令會下載憑證並設定 Kubernetes CLI 以供使用。

az aks get-credentials --resource-group myResourceGroup --name

使用 kubectl get nodes 命令來確認與叢集的連線。 此命令會傳回叢集節點的清單。

kubectl get nodes

下列範例輸出將示範如何要求您登入。

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

登入之後,下列範例輸出會顯示受控系統節點集區。 請確定節點的狀態為就緒

NAME                                STATUS   ROLES   AGE     VERSION
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

部署應用程式

若要部署應用程式,您可以使用資訊清單檔來建立執行 AKS 市集應用程式所需的所有物件。 Kubernetes 資訊清單檔會定義叢集所需的狀態,例如要執行哪些容器映像。 資訊清單包含下列 Kubernetes 部署和服務:

Azure 市集範例結構的螢幕擷取畫面。

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

注意

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

  1. 建立命名空間 aks-store-demo 以部署 Kube 資源。

    kubectl create ns aks-store-demo
    
  2. 使用 kubectl apply 命令將應用程式部署至 aks-store-demo 命名空間。 定義部署位於 GitHub 上的 YAML 檔案。

    kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yaml
    

    下列輸出範例會顯示部署和服務:

    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
    ingress/store-front created
    

測試應用程式

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

  1. 使用 kubectl get pods 命令檢視已部署 Pod 的狀態。 請先確認全部 Pod 都是 Running 後再繼續進行。 如果這是您部署的第一個工作負載,則節點自動佈建可能需要幾分鐘的時間,才能建立節點集區來執行 Pod。

    kubectl get pods -n aks-store-demo
    
  2. 檢查市集前端應用程式的公用 IP 位址。 使用 kubectl get service 命令搭配 --watch 引數來監視進度。

    kubectl get ingress store-front -n aks-store-demo --watch
    

    store-front 服務的 ADDRESS 輸出一開始會顯示空白:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *                      80      12m
    
  3. ADDRESS 位址從空白變成實際的公用 IP 位址時,請使用 CTRL-C 停止 kubectl 監看式流程。

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

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *       4.255.22.196   80      12m
    
  4. 若要查看 Azure 市集應用程式的實際運作情況,請開啟網頁瀏覽器並瀏覽至輸入的外部 IP 位址。

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

選取叢集

如果您不打算進行後續的 AKS 教學課程,請清除不必要資源以避免 Azure 費用。 請執行 az group delete 命令來移除資源群組、容器服務以及所有相關資源。

az group delete --name myResourceGroup --yes --no-wait

注意

在本快速入門中,是以系統指派的受控識別 (預設身分識別選項) 來建立 AKS 叢集。 平台會管理這個身分識別,您不需要手動移除它。

下一步

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

若要深入了解 AKS Automatic,請繼續進行簡介。