快速入門:部署 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 Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 本文需要 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/write
和Microsoft.Resources/deployments/*
權限。 如需角色與權限的清單,請參閱 Azure 內建角色。
重要
AKS 自動嘗試根據訂用帳戶中可用的容量,動態選取節點集區的虛擬機 SKU system
。 請確定您的訂用帳戶有 16 個 vCPU 的配額,這是您要部署叢集之區域中下列任何一個 SKU 的配額:Standard_D4pds_v5、Standard_D4lds_v5、Standard_D4ads_v5、Standard_D4ds_v5、Standard_D4d_v5、Standard_D4d_v4、Standard_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 叢集
若要建立 AKS Automatic 叢集,請搜尋 Kubernetes Services,然後從下拉式選項中選取 [自動 Kube 叢集]。
在 [基本] 索引標籤上,填入開始使用所需的所有必要欄位:[訂用帳戶]、[資源群組]、[叢集名稱] 和 [區域]
如果不符合必要條件,且訂用帳戶需要註冊預覽旗標,則 [訂用帳戶] 欄位下會顯示錯誤:
在 [監視] 索引標籤上,從 Azure 監視器、受控 Prometheus、受控 Grafana 和/或設定警示中選擇監視組態。 新增標籤 (選擇性),然後繼續建立叢集。
開始從 GitHub 設定您的第一個應用程式,並設定自動化部署管線。
連線至叢集
若要管理 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 檔案
將 Bicep 檔案以 main.bicep 儲存至本機電腦。
重要
Bicep 檔案會將
clusterName
參數設定為字串 myAKSAutomaticCluster。 如果您想要使用不同的叢集名稱,請務必先將字串更新為您慣用的叢集名稱,再將檔案儲存到您的電腦。使用 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 Reader
、Azure Kubernetes Service RBAC Writer
、Azure Kubernetes Service RBAC Admin
或 Azure 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 部署和服務:
- 市集前端:供客戶檢視產品和下單的 Web 應用程式。
- 產品服務:顯示產品資訊。
- 訂單服務:下單。
- Rabbit MQ:訂單佇列的訊息佇列。
注意
除非是針對生產環境的永續性儲存,否則不建議執行具狀態容器,例如 Rabbit MQ。 這裡使用具狀態容器是為了簡單起見,但我們建議使用受管理的服務,例如 Azure Cosmos DB 或 Azure 服務匯流排。
建立命名空間
aks-store-demo
以部署 Kube 資源。kubectl create ns aks-store-demo
使用 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 服務會將應用程式前端公開至網際網路。 此程序可能需要幾分鐘才能完成。
使用 kubectl get pods 命令檢視已部署 Pod 的狀態。 請先確認全部 Pod 都是
Running
後再繼續進行。 如果這是您部署的第一個工作負載,則節點自動佈建可能需要幾分鐘的時間,才能建立節點集區來執行 Pod。kubectl get pods -n aks-store-demo
檢查市集前端應用程式的公用 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
當 ADDRESS 位址從空白變成實際的公用 IP 位址時,請使用
CTRL-C
停止kubectl
監看式流程。下列輸出範例會顯示已指派給服務的有效公用 IP 位址:
NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 4.255.22.196 80 12m
若要查看 Azure 市集應用程式的實際運作情況,請開啟網頁瀏覽器並瀏覽至輸入的外部 IP 位址。
選取叢集
如果您不打算進行後續的 AKS 教學課程,請清除不必要資源以避免 Azure 費用。 請執行 az group delete 命令來移除資源群組、容器服務以及所有相關資源。
az group delete --name myResourceGroup --yes --no-wait
注意
在本快速入門中,是以系統指派的受控識別 (預設身分識別選項) 來建立 AKS 叢集。 平台會管理這個身分識別,您不需要手動移除它。
下一步
在本快速入門中,您已使用 AKS Automatic 部署 Kubernetes 叢集,接著將簡單多容器應用程式部署到此叢集。 這個範例應用程式僅供示範之用,並不代表 Kube 應用程式的全部最佳做法。 如需針對生產使用 AKS 建立完整解決方案的指引,請參閱 AKS 解決方案指引。
若要深入了解 AKS Automatic,請繼續進行簡介。