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
사용자 클러스터 등록
관리자 워크스테이션에서 다음 단계를 실행합니다.
Google 계정으로 로그인합니다.
gcloud auth login --no-browser
gkectl
을 승인하는 서비스 계정을 만들어 클러스터를 등록합니다.gcloud iam service-accounts create SA_NAME \ --project SA_PROJECT_ID
다음을 바꿉니다.
- SA_NAME을 서비스 계정에 지정할 이름으로 바꿉니다. 서비스 계정의 목적을 설명하는 이름(예:
enrollment-sa
)을 사용하는 것이 좋습니다. - SA_PROJECT_ID는 서비스 계정의 상위 프로젝트 ID입니다. 서비스 계정을 만드는 프로젝트는 서비스 계정이 사용되는 프로젝트나 다른 프로젝트일 수 있습니다.
- SA_NAME을 서비스 계정에 지정할 이름으로 바꿉니다. 서비스 계정의 목적을 설명하는 이름(예:
서비스 계정의 JSON 키를 만듭니다.
gcloud iam service-accounts keys create SA_NAME-key.json \ --iam-account=SA_NAME@SA_PROJECT_ID.iam.gserviceaccount.com
Fleet 호스트 프로젝트에서 GKE On-Prem API를 사용 설정합니다.
gcloud services enable \ --project FLEET_PROJECT_ID \ gkeonprem.googleapis.com
FLEET_PROJECT_ID를 Fleet 호스트 프로젝트의 ID로 바꿉니다. 이는 관리자 및 사용자 클러스터가 등록된 클라우드 프로젝트와 같아야 하며, 클러스터 구성 파일의 gkeConnect.projectID 필드에서 지정합니다.
서비스 계정에
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"
서비스 계정을 사용하도록 애플리케이션 기본 사용자 인증 정보를 설정합니다. 이렇게 하면 gcloud CLI가 이전에 만든 서비스 계정을 사용합니다.
export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_SA_KEY/SA_NAME-key.json
gkectl enroll cluster
명령어를 실행합니다. 다음을 바꿉니다.- CLUSTER_NAME를 사용자 클러스터 이름으로 바꿉니다.
- ADMIN_CLUSTER_KUBECONFIG를 관리자 클러스터의
kubeconfig
파일 경로로 바꿉니다.
gkectl enroll cluster --cluster-name=CLUSTER_NAME \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
등록하려는 프로젝트에 사용자 클러스터가 두 개 이상 있는 경우 동일한 서비스 계정과 키를 사용하여 각 클러스터에
gkectl enroll cluster
를 실행할 수 있습니다.