Share via


快速入門:使用 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 叢集加入為成員叢集。

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

    export MEMBER_NAME_1=aks-member-1
    export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/managedClusters/${MEMBER_NAME_1}
    
  2. 使用 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"
    }
    
  3. 確認成員叢集已使用 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>
    

下一步