Azure Kubernetes Fleet Manager 허브 클러스터에 대한 Kubernetes API 액세스
허브 클러스터를 사용하여 Azure Kubernetes Fleet Manager(Kubernetes Fleet) 리소스를 만든 경우 이를 사용하여 Kubernetes 리소스 전파와 같은 시나리오를 중앙에서 제어할 수 있습니다. 이 문서에서는 Kubernetes Fleet 허브 클러스터에 대한 Kubernetes API에 액세스하는 방법을 알아봅니다.
필수 조건
- Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.
- 허브 클러스터 및 멤버 클러스터가 있는 Kubernetes Fleet 리소스가 필요합니다. 없는 경우 Azure CLI를 사용하여 Azure Kubernetes Fleet Manager 리소스 만들기 및 멤버 클러스터 조인을 참조하세요.
- 사용 중인 ID(사용자 또는 서비스 주체)에는 Kubernetes Fleet 리소스에 대한 Microsoft.ContainerService/fleets/listCredentials/action 권한이 있어야 합니다.
Kubernetes API 액세스
구독 ID, 리소스 그룹 및 Kubernetes Fleet 리소스에 대해 다음 환경 변수를 설정합니다.
export SUBSCRIPTION_ID=<subscription-id> export GROUP=<resource-group-name> export FLEET=<fleet-name>
다음 명령을 사용하여 기본 Azure 구독을 설정합니다.
az account set
az account set --subscription ${SUBSCRIPTION_ID}
다음 명령을 사용하여
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
허브 클러스터의 Kubernetes Fleet 리소스 값에 대해
FLEET_ID
다음 환경 변수를 설정합니다.export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
다음 명령을 사용하여 Kubernetes Fleet 허브 클러스터에 액세스하도록 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" }
다음 명령을 사용하여 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
관련 콘텐츠
Azure Kubernetes Service