共用方式為


快速入門:使用 Azure CLI 建立 Azure Kubernetes Fleet Manager 並加入成員叢集

適用於: ✔️ 車隊管理器 ✔️ 中樞叢集版車隊管理器

使用 Azure CLI 建立 Fleet Manager,並加入 支援的 Kubernetes 叢集 作為成員,以開始使用 Azure Kubernetes Fleet Manager。

開始之前

如果您沒有 Azure 帳戶,請在開始之前建立 免費帳戶

  • 閱讀 Fleet Manager 的概念性概觀,其中提供本文件所參考車隊和成員叢集的說明。

  • 閱讀機群類型的概念性概觀,其會提供不同機群設定選項的比較。

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶

  • 身分識別 (使用者或服務主體),可用來登入 Azure CLI (部分機器翻譯)。 此身分識別需要機群資源的下列權限,以及成員叢集資源的權限 (如果適用):

  • 艦隊權限:

    • 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
  • 如果加入 AKS 成員叢集:

    • Microsoft.ContainerService/managedClusters/read
    • Microsoft.ContainerService/managedClusters/write
    • Microsoft.ContainerService/managedClusters/listClusterUserCredential/action
  • 如果加入已啟用 Arc 的 Kubernetes 成員叢集:

    • Microsoft.Kubernetes/connectedClusters/read,
    • Microsoft.KubernetesConfiguration/extensions/read,
    • Microsoft.KubernetesConfiguration/extensions/write,
    • Microsoft.KubernetesConfiguration/extensions/delete,
  • 安裝 Azure CLI 2.70.0 版或更新版本。 若要安裝或升級,請參閱安裝 Azure CLI

  • 您也需要 fleet Azure CLI 延伸模組 1.6.2 版或更新版本,您可以執行下列命令來安裝:

    az extension add --name fleet
    

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

    az extension update --name fleet
    
  • 設定下列環境變數:

    export SUBSCRIPTION_ID=<subscription_id>
    export GROUP=<your_resource_group_name>
    export FLEET=<your_fleet_name>
    export LOCATION=<azure-region-name>
    
  • 使用 kubectl 命令進行安裝az aks install-cli

    az aks install-cli
    
  • 要加入為 Fleet Manager 成員叢集的 Kubernetes 叢集必須使用其各自平台的支援版本:請參閱 AKS 叢集版本支援原則已啟用 Azure Arc 的 Kubernetes 驗證

建立資源群組

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

設定 Azure 訂用帳戶,並使用 az group create 命令建立資源群組。

az account set -s ${SUBSCRIPTION_ID}
az group create --name ${GROUP} --location ${LOCATION}

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

{
  "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo",
  "location": "<LOCATION>",
  "managedBy": null,
  "name": "fleet-demo",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

建立 Fleet Manager

您可以隨時建立 Fleet Manager,並選取稍後將 支援的 Kubernetes 叢集 新增為成員。 根據預設,透過 Azure CLI 建立時,Fleet Manager 會啟用成員叢集分組和更新協調處理。 如果使用中樞叢集建立 Fleet Manager,就可以跨多個成員叢集智慧地放置 Kubernetes 物件並進行負載平衡。 如需詳細資訊,請參閱機群類型的概念性概觀,其會提供不同機群設定的比較。

重要事項

您可以從沒有中樞叢集的機群管理員變更為具有中樞叢集的機群管理員,但無法反向操作。 針對具有中樞叢集的機隊管理員,一旦選取私人或公用存取,就無法變更。

如果您只想針對 Kubernetes 或節點映像更新的協調使用 Fleet Manager,則可以使用 az fleet create 命令建立不含中樞叢集的 Fleet 資源。

az fleet create \
    --resource-group ${GROUP} \
    --name ${FLEET} \
    --location ${LOCATION} \
    --enable-managed-identity

您的輸出看起來應該類似下列範例輸出:

{
  "etag": "...",
  "hubProfile": null,
  "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo/providers/Microsoft.ContainerService/fleets/fleet-demo",
  "identity": {
    "principalId": <system-identity-id>,
    "tenantId": <entra-tenant-id>,
    "type": "SystemAssigned",
    "userAssignedIdentities": null
  },
  "location": "<LOCATION>",
  "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 叢集或已啟用 Arc 的 Kubernetes 叢集 (預覽版) 加入為成員叢集。

  1. 請為成員叢集設定下列環境變數:

    export MEMBER_NAME_1=flt-member-cluster-1
    
    # For an AKS cluster
    export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/managedClusters/${MEMBER_NAME_1}
    
    # For an Arc-enabled cluster
    export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.Kubernetes/connectedClusters/${MEMBER_NAME_1}
    
  2. 使用命令 az fleet member create 將現有叢集加入 Fleet Manager。

    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"
    }
    
  3. 確認成員叢集已使用命令 az fleet member list 成功加入 Fleet Manager。

    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>
    

後續步驟