フリート ハブ クラスター Kubernetes API にアクセスする
ハブ クラスターを有効にして Azure Kubernetes Fleet Manager リソースが作成された場合は、Kubernetes リソースの伝達などの一元制御のシナリオで使用できます。 この記事では、フリート リソースによって管理されるハブ クラスターの Kubernetes API にアクセスする方法について説明します。
前提条件
Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
- 1 つのハブ クラスターと複数のメンバー クラスターを持つフリート リソースが必要です。 メンバーが存在しない場合、「Azure CLI を使用して Azure Kubernetes Fleet Manager リソースを作成し、メンバー クラスターを参加させる」を参照してください。
- 使用している ID (ユーザーまたはサービス プリンシパル) には、フリート リソースに対する Microsoft.ContainerService/fleets/listCredentials/action が必要です。
フリート ハブ クラスター Kubernetes API にアクセスする
サブスクリプション ID、リソース グループ、フリート リソースに対して次の環境変数を設定します。
export SUBSCRIPTION_ID=<subscription-id> export GROUP=<resource-group-name> export FLEET=<fleet-name>
az account set
コマンドを使用して使用する既定の Azure サブスクリプションを設定します。az account set --subscription ${SUBSCRIPTION_ID}
az fleet get-credentials
コマンドを使用して、ハブ クラスター フリート リソースの kubeconfig ファイルを取得します。az fleet get-credentials --resource-group ${GROUP} --name ${FLEET}
出力は次の出力例のようになります。
Merged "hub" as current context in /home/fleet/.kube/config
ハブ クラスター フリート リソースの
id
に対して次の環境変数を設定します。export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
次のコマンドを使用して、ハブ クラスター フリート リソースの 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" }
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
次のステップ
Azure Kubernetes Service