クイックスタート: フリート リソースの Kubernetes API にアクセスする

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

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。

フリート リソースの Kubernetes API にアクセスする

  1. サブスクリプション ID、リソース グループ、フリート リソースに対して次の環境変数を設定します。

    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 コマンドを使用して、ハブ クラスター フリート リソースの kubeconfig ファイルを取得します。

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

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

    Merged "hub" as current context in /home/fleet/.kube/config
    
  4. ハブ クラスター フリート リソースの id に対して次の環境変数を設定します。

    export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
    
  5. 次のコマンドを使用して、ハブ クラスター フリート リソースの Kubernetes API サーバーに対して ID を認可します。

    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
    

次のステップ