다음을 통해 공유


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. 다음 명령을 사용하여 기본 Azure 구독을 설정합니다.az account set

    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. 다음 명령을 사용하여 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"
    }
    
  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