다음을 통해 공유


빠른 시작: Fleet 리소스의 Kubernetes API에 액세스

Azure Kubernetes Fleet Manager 리소스가 허브 클러스터를 사용하도록 설정하여 만들어진 경우 이를 사용하여 Kubernetes 리소스 전파와 같은 시나리오를 중앙에서 제어할 수 있습니다. 이 문서에서는 Fleet 리소스로 관리되는 허브 클러스터의 Kubernetes API에 액세스하는 방법을 알아봅니다.

필수 조건

Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.

Fleet 리소스의 Kubernetes API에 액세스

  1. 구독 ID, 리소스 그룹 및 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 명령을 사용하여 허브 클러스터 Fleet 리소스의 kubeconfig 파일을 가져옵니다.

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

    출력은 다음 예제 출력과 비슷하게 됩니다.

    Merged "hub" as current context in /home/fleet/.kube/config
    
  4. 허브 클러스터 Fleet 리소스의 id에 대해 다음 환경 변수를 설정합니다.

    export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
    
  5. 다음 명령을 사용하여 허브 클러스터 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"
    }
    
  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
    

다음 단계