共用方式為


快速入門:存取 Fleet 資源的 Kubernetes API

如果您的 Azure Kubernetes Fleet Manager 資源是在啟用中樞叢集的情況下建立的,則可用來集中控制 Kubernetes 資源傳播等案例。 在本文中,您將瞭解如何存取 Fleet 資源所管理中樞叢集的 Kubernetes API。

必要條件

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

  • 您需要具有中樞叢集和成員叢集的 Fleet 資源。 如果您沒有資源,請參閱 使用 Azure CLI 建立 Azure Kubernetes Fleet Manager 資源並加入成員叢集。
  • 您使用的身分識別(使用者或服務主體)必須具有 Fleet 資源的 Microsoft.ContainerService/fleets/listCredentials/action。

存取 Fleet 資源的 Kubernetes API

  1. 為您的訂用帳戶標識碼、資源群組和 Fleet 資源設定下列環境變數:

    export SUBSCRIPTION_ID=<subscription-id>
    export GROUP=<resource-group-name>
    export FLEET=<fleet-name>
    
  2. 將預設的 Azure 訂用帳戶設定為使用 az account set 命令。

    az account set --subscription ${SUBSCRIPTION_ID}
    
  3. 使用 az fleet get-credentials 命令取得中樞叢集 Fleet 資源的 kubeconfig 檔案。

    az fleet get-credentials --resource-group ${GROUP} --name ${FLEET}
    

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

    Merged "hub" as current context in /home/fleet/.kube/config
    
  4. 為中樞叢集 Fleet 資源的 設定下列環境變數 id

    export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
    
  5. 使用下列命令,將您的身分識別授權給中樞叢集 Fleet 資源的 Kubernetes API 伺服器:

    ROLE針對環境變數,您可以使用下列四個內建角色定義之一做為值:

    • Azure Kubernetes 機群管理員 RBAC 讀取者
    • Azure Kubernetes 機群管理員 RBAC 寫入者
    • Azure Kubernetes 機群管理員 RBAC 系統管理員
    • Azure Kubernetes 機群管理員 RBAC 叢集系統管理員
    export IDENTITY=$(az ad signed-in-user show --query "id" --output tsv)
    export ROLE="Azure Kubernetes Fleet Manager RBAC Cluster Admin"
    az role assignment create --role "${ROLE}" --assignee ${IDENTITY} --scope ${FLEET_ID}
    

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

    {
      "canDelegate": null,
      "condition": null,
      "conditionVersion": null,
      "description": null,
      "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/fleets/<FLEET>/providers/Microsoft.Authorization/roleAssignments/<assignment>",
      "name": "<name>",
      "principalId": "<id>",
      "principalType": "User",
      "resourceGroup": "<GROUP>",
      "roleDefinitionId": "/subscriptions/<SUBSCRIPTION_ID>/providers/Microsoft.Authorization/roleDefinitions/18ab4d3d-a1bf-4477-8ad9-8359bc988f69",
      "scope": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/fleets/<FLEET>",
      "type": "Microsoft.Authorization/roleAssignments"
    }
    
  6. 確認您可以使用 命令存取 API 伺服器 kubectl get memberclusters

    kubectl get memberclusters
    

    如果成功,您的輸出看起來應該類似下列範例輸出:

    NAME           JOINED   AGE
    aks-member-1   True     2m
    aks-member-2   True     2m
    aks-member-3   True     2m
    

下一步