快速入門:使用 Azure CLI 建立 Azure Kubernetes Fleet Manager 資源並加入成員叢集
開始使用 Azure Kubernetes Fleet Manager (Fleet),方法是使用 Azure CLI 建立 Fleet 資源,並稍後將 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
命令安裝 Fleet 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>
kubelogin
安裝和kubectl
使用az aks install-cli
命令。az aks install-cli
您想要加入為成員叢集至 Fleet 資源的 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"
}
建立 Fleet 資源
您可以建立 Fleet 資源,以便稍後將 AKS 叢集分組為成員叢集。 根據預設,此資源會啟用成員叢集群組和更新協調流程。 如果已啟用 Fleet 中樞,則會啟用其他預覽功能,例如 Kubernetes 對象傳播至成員叢集,以及跨多個成員叢集的 L4 服務負載平衡。
重要
到目前為止,一旦建立艦隊資源,就無法變更車隊資源的中樞模式。
選項 1 - 建立沒有中樞叢集的艦隊
如果您想要只針對更新協調流程使用 Fleet,這是建立新 Fleet 資源時的預設體驗,您可以使用 命令建立未使用 az fleet create
中樞叢集的 Fleet 資源。 如需詳細資訊,請參閱 什麼是中樞叢集(預覽版)?。
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"
}
選項 2 - 使用中樞叢集建立艦隊
如果您想要除了更新協調流程之外,還要使用 Fleet 進行 Kubernetes 對象傳播和多重叢集負載平衡,則必須使用 命令指定 --enable-hub
參數 az fleet create
來建立已啟用中樞叢集的 Fleet 資源。
az fleet create --resource-group ${GROUP} --name ${FLEET} --location eastus --enable-hub
您的輸出看起來應該類似上一節中的範例輸出。
加入成員叢集
Fleet 目前支援將現有的 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 叢集加入 Fleet 資源。# 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
命令成功加入 Fleet 資源。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>
下一步
- 存取 Fleet 資源的 Kubernetes API。