快速入門:使用 Azure CLI 建立 Azure Kubernetes 機群管理員資源並加入成員叢集
透過 Azure CLI 開始使用 Azure Kubernetes 機群管理員 (機群),以建立機群資源,並於稍後將 Azure Kubernetes Service (AKS) 叢集連線為成員叢集。
必要條件
如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶。
閱讀這項功能的概念性概觀 (部分機器翻譯),其會提供本文件所參考機群和成員叢集的說明。
閱讀機群類型的概念性概觀,其會提供不同機群設定選項的比較。
具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
身分識別 (使用者或服務主體),可用來登入 Azure CLI (部分機器翻譯)。 此身分識別必須具有機群和 AKS 資源類型的下列權限,才能完成本快速入門中所列的步驟:
- Microsoft.ContainerService/fleets/read
- Microsoft.ContainerService/fleets/write
- Microsoft.ContainerService/fleets/members/read
- Microsoft.ContainerService/fleets/members/write
- Microsoft.ContainerService/fleetMemberships/read
- Microsoft.ContainerService/fleetMemberships/write
- Microsoft.ContainerService/managedClusters/read
- Microsoft.ContainerService/managedClusters/write
安裝或升級 Azure CLI (部分機器翻譯) 至
2.53.1
版或更新版本。使用
az extension add
命令安裝「機群」Azure CLI 延伸模組,並確定您的版本至少是1.0.0
。az extension add --name fleet
設定下列環境變數:
export SUBSCRIPTION_ID=<subscription_id> export GROUP=<your_resource_group_name> export FLEET=<your_fleet_name>
使用
az aks install-cli
命令安裝kubectl
和kubelogin
。az aks install-cli
想要以成員叢集身分加入至機群資源的 AKS 叢集必須位於支援的 AKS 版本內。 在這裡 (部分機器翻譯) 深入了解 AKS 版本支援原則。
建立資源群組
Azure 資源群組是部署及管理 Azure 資源所在的邏輯群組。 建立資源群組時,系統提示您指定位置。 此位置是資源群組中繼資料的儲存位置,如果您未在資源建立期間指定另一個位置,此位置也會是您在 Azure 中執行資源的位置。
設定 Azure 訂用帳戶,並使用 az group create
命令建立資源群組。
az account set -s ${SUBSCRIPTION_ID}
az group create --name ${GROUP} --location eastus
下列輸出範例類似於成功建立資源群組:
{
"id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo",
"location": "eastus",
"managedBy": null,
"name": "fleet-demo",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
建立機群資源
您可以建立機群資源,以便稍後將 AKS 叢集分組為成員叢集。 根據預設,透過 Azure CLI 建立時,此資源會啟用成員叢集群組和更新協調流程。 如果啟用了機群中樞,便會啟用其他預覽功能,例如以成員叢集為目的地的 Kubernetes 物件傳播,以及跨多個成員叢集的 L4 服務負載平衡。 如需詳細資訊,請參閱機群類型的概念性概觀,其會提供不同機群設定的比較。
重要
一旦建立 Kubernetes 機群資源之後,就可以將沒有中樞叢集的 Kubernetes 機群資源升級至具有中樞叢集的 Kubernetes 機群資源。 若為具有中樞叢集的 Kubernetes 機群資源,一旦選取私人或公用,就無法加以變更。
如果您只想將機群用於更新協調流程,這是透過 Azure CLI 建立新機群資源時的預設體驗,您可以使用 az fleet create
命令建立沒有中樞叢集的機群資源。
az fleet create --resource-group ${GROUP} --name ${FLEET} --location eastus
您的輸出看起來應類似下列的範例輸出:
{
"etag": "...",
"hubProfile": null,
"id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo/providers/Microsoft.ContainerService/fleets/fleet-demo",
"identity": {
"principalId": null,
"tenantId": null,
"type": "None",
"userAssignedIdentities": null
},
"location": "eastus",
"name": "fleet-demo",
"provisioningState": "Succeeded",
"resourceGroup": "fleet-demo",
"systemData": {
"createdAt": "2023-11-03T17:15:19.610149+00:00",
"createdBy": "<user>",
"createdByType": "User",
"lastModifiedAt": "2023-11-03T17:15:19.610149+00:00",
"lastModifiedBy": "<user>",
"lastModifiedByType": "User"
},
"tags": null,
"type": "Microsoft.ContainerService/fleets"
}
加入成員叢集
機群目前支援將現有的 AKS 叢集加入為成員叢集。
請為成員叢集設定下列環境變數:
export MEMBER_NAME_1=aks-member-1 export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/managedClusters/${MEMBER_NAME_1}
使用
az fleet member create
命令將現有的 AKS 叢集加入到機群資源。# Join the first member cluster az fleet member create --resource-group ${GROUP} --fleet-name ${FLEET} --name ${MEMBER_NAME_1} --member-cluster-id ${MEMBER_CLUSTER_ID_1}
您的輸出看起來應類似下列的範例輸出:
{ "clusterResourceId": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-x", "etag": "...", "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/fleets/<FLEET>/members/aks-member-x", "name": "aks-member-1", "provisioningState": "Succeeded", "resourceGroup": "<GROUP>", "systemData": { "createdAt": "2022-10-04T19:04:56.455813+00:00", "createdBy": "<user>", "createdByType": "User", "lastModifiedAt": "2022-10-04T19:04:56.455813+00:00", "lastModifiedBy": "<user>", "lastModifiedByType": "User" }, "type": "Microsoft.ContainerService/fleets/members" }
使用
az fleet member list
命令確認成員叢集已成功加入到機群資源。az fleet member list --resource-group ${GROUP} --fleet-name ${FLEET} -o table
如果成功,輸出看起來應該會類似下列範例輸出:
ClusterResourceId Name ProvisioningState ResourceGroup ----------------------------------------------------------------------------------------------------------------------------------------------- ------------ ------------------- --------------- /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-1 aks-member-1 Succeeded <GROUP> /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-2 aks-member-2 Succeeded <GROUP> /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-3 aks-member-3 Succeeded <GROUP>