GKE On-Prem API에서 관리할 사용자 클러스터 구성

gkectl을 사용하여 생성된 VMware용 Anthos 클러스터(GKE On-Prem) 사용자 클러스터는 Google Cloud 콘솔에서 사용자 클러스터를 만들 때 자동으로 사용 설정되는 Google Cloud 호스팅 API인 GKE On-Prem API에서 작동하도록 구성되지 않습니다. 콘솔을 사용하여 gkectl로 만든 사용자 클러스터의 수명 주기를 관리하려는 경우 gkectl enroll cluster 명령어를 사용하여 클러스터를 구성해야 합니다.

요구사항

사용자 클러스터는 다음 요구사항을 충족해야 합니다.

  • 버전 1.11 이상
  • Fleet에 등록되어야 합니다. 이는 클러스터가 버전 1.8에서 생성될 때 자동으로 수행됩니다.
  • 조직에서 Google API 및 기타 주소의 트래픽이 프록시 서버를 통과하도록 허용하는 허용 목록이 설정된 경우 허용 목록에 다음을 추가합니다.

    • gkeonprem.googleapis.com
    • gkeonprem.mtls.googleapis.com

사용자 클러스터 등록

관리자 워크스테이션에서 다음 단계를 실행합니다.

  1. Google 계정으로 로그인합니다.

    gcloud auth login --no-browser
    
  2. gkectl을 승인하는 서비스 계정을 만들어 클러스터를 등록합니다.

    gcloud iam service-accounts create SA_NAME \
        --project SA_PROJECT_ID
    

    다음을 바꿉니다.

    • SA_NAME을 서비스 계정에 지정할 이름으로 바꿉니다. 서비스 계정의 목적을 설명하는 이름(예: enrollment-sa)을 사용하는 것이 좋습니다.
    • SA_PROJECT_ID는 서비스 계정의 상위 프로젝트 ID입니다. 서비스 계정을 만드는 프로젝트는 서비스 계정이 사용되는 프로젝트나 다른 프로젝트일 수 있습니다.
  3. 서비스 계정의 JSON 키를 만듭니다.

    gcloud iam service-accounts keys create SA_NAME-key.json \
       --iam-account=SA_NAME@SA_PROJECT_ID.iam.gserviceaccount.com
    
  4. Fleet 호스트 프로젝트에서 GKE On-Prem API를 사용 설정합니다.

    gcloud services enable \
        --project FLEET_PROJECT_ID \
        gkeonprem.googleapis.com
    

    FLEET_PROJECT_IDFleet 호스트 프로젝트의 ID로 바꿉니다. 이는 관리자 및 사용자 클러스터가 등록된 클라우드 프로젝트와 같아야 하며, 클러스터 구성 파일의 gkeConnect.projectID 필드에서 지정합니다.

  5. 서비스 계정에 gkeonprem.admin 역할을 부여합니다.

    gcloud projects add-iam-policy-binding FLEET_PROJECT_ID \
        --member "serviceAccount:SA_NAME@SA_PROJECT_ID.iam.gserviceaccount.com" \
        --role "roles/gkeonprem.admin"
    
  6. 서비스 계정을 사용하도록 애플리케이션 기본 사용자 인증 정보를 설정합니다. 이렇게 하면 gcloud CLI가 이전에 만든 서비스 계정을 사용합니다.

    export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_SA_KEY/SA_NAME-key.json
    
  7. gkectl enroll cluster 명령어를 실행합니다. 다음을 바꿉니다.

    • CLUSTER_NAME를 사용자 클러스터 이름으로 바꿉니다.
    • ADMIN_CLUSTER_KUBECONFIG를 관리자 클러스터의 kubeconfig 파일 경로로 바꿉니다.
    gkectl enroll cluster --cluster-name=CLUSTER_NAME \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    등록하려는 프로젝트에 사용자 클러스터가 두 개 이상 있는 경우 동일한 서비스 계정과 키를 사용하여 각 클러스터에 gkectl enroll cluster를 실행할 수 있습니다.