次の方法で共有


Azure Kubernetes Fleet Manager ハブ クラスターの Kubernetes API にアクセスする

Azure Kubernetes Fleet Manager (Kubernetes Fleet) リソースがハブ クラスターを使って作成された場合は、それを使って Kubernetes リソースの伝達などのシナリオを一元的に制御できます。 この記事では、Kubernetes Fleet ハブ クラスターの Kubernetes API にアクセスする方法を説明します。

前提条件

Kubernetes API にアクセスする

  1. サブスクリプション ID、リソース グループ、Kubernetes Fleet リソースのための次の環境変数を設定します。

    export SUBSCRIPTION_ID=<subscription-id>
    export GROUP=<resource-group-name>
    export FLEET=<fleet-name>
    
  2. az account set コマンドを使って、既定の Azure サブスクリプションを設定します。

    az account set --subscription ${SUBSCRIPTION_ID}
    
  3. az fleet get-credentials コマンドを使って、Kubernetes Fleet ハブ クラスターの kubeconfig ファイルを取得します。

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

    出力は次の例のようになります。

    Merged "hub" as current context in /home/fleet/.kube/config
    
  4. ハブ クラスターの Kubernetes Fleet リソースの FLEET_ID の値に、次の環境変数を設定します。

    export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
    
  5. 次のコマンドを使って、お使いの ID が Kubernetes Fleet ハブ クラスターにアクセスするのを認可します。

    ROLE 環境変数に対して、次の 4 つの組み込みロールの定義のいずれかを値として使用できます。

    • Azure Kubernetes Fleet Manager RBAC リーダー
    • Azure Kubernetes Fleet Manager RBAC ライター
    • Azure Kubernetes Fleet Manager RBAC 管理者
    • Azure Kubernetes Fleet Manager 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. kubectl get memberclusters コマンドを使って、API サーバーにアクセスできることを確認します。

    kubectl get memberclusters
    

    コマンドが成功した場合、出力は次の例のようになります。

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