Google Cloud 콘솔에서 사용자 클러스터 만들기 문제 해결

이 페이지에서는 Google Cloud 콘솔에서 VMware용 Anthos 클러스터(GKE On-Prem) 사용자 클러스터 생성의 문제를 조사하는 방법을 설명합니다.

관리자 클러스터가 클러스터 기본 드롭다운 목록에 표시되지 않음

Google Cloud 콘솔에서 사용자 클러스터를 만들려면 먼저 관리자 클러스터를 Fleet에 등록해야 합니다. Google Cloud 콘솔의 클러스터 기본사항 섹션에 있는 드롭다운 목록에 관리자 클러스터가 표시되지 않으면 관리자 클러스터가 등록되지 않았거나 gcloud container hub memberships register 명령어로 등록된 것입니다.

등록 상태를 확인합니다.

  • Google Cloud 콘솔에서 Anthos > 클러스터 페이지로 이동하고 사용자 클러스터를 만들려고 했던 프로젝트와 동일한 Google Cloud 프로젝트를 선택합니다.

    Anthos 클러스터 페이지로 이동

    • 관리자 클러스터가 목록에 표시되지 않으면 관리자 클러스터 등록을 참조하세요.

    • 관리자 클러스터가 목록에 표시되면 gcloud container hub memberships register 명령어를 사용하여 클러스터가 등록되었음을 의미합니다. 이 gcloud 명령어로는 관리자 클러스터가 올바르게 등록되지 않습니다.

등록 문제를 해결하려면 다음 단계를 따르세요.

  1. 관리자 워크스테이션에서 멤버십 이름을 가져옵니다.

    kubectl describe membership membership \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    
  2. 관리자 클러스터를 등록 취소합니다. 다음 명령어에서 다음 항목을 바꿉니다.

    • MEMBERSHIP_NAME을 이전 명령어의 멤버십 이름으로 바꿉니다.
    • FLEET_HOST_PROJECT_IDFleet 호스트 프로젝트의 ID로 바꿉니다. Google Cloud 콘솔에서 사용자 클러스터를 만들려고 할 때 선택한 프로젝트입니다.
    • ADMIN_CLUSTER_KUBECONFIG를 관리자 클러스터의 kubeconfig 파일 경로로 바꿉니다.
    • ADMIN_CLUSTER_CONTEXT를 kubeconfig 파일에 표시된 관리자 클러스터의 컨텍스트로 바꿉니다. kubectl config current-context를 실행하면 명령줄에서 이 값을 가져올 수 있습니다.
    gcloud container fleet memberships unregister MEMBERSHIP_NAME \
      --project=FLEET_HOST_PROJECT_ID \
      --kubeconfig=ADMIN_CLUSTER_KUBECONFIG \
      --context=ADMIN_CLUSTER_CONTEXT
    
  3. 관리자 클러스터 등록의 단계에 따라 클러스터를 다시 등록하세요.

클러스터 만들기 오류

이 섹션에서는 Google Cloud 콘솔에서 클러스터를 만드는 동안 발생하는 몇 가지 오류를 설명합니다.

리소스가 이미 있음 오류

다음과 유사한 오류 메시지가 뜨며 사용자 클러스터 생성에 실패합니다.

Resource 'projects/1234567890/locations/europe-west1/vmwareClusters/user-cluster1'
already exists
Request ID: 129290123128705826

이 오류 메시지는 클러스터 이름이 이미 사용 중임을 나타냅니다.

이 문제를 해결할 수 있는 한 가지 해결책은 다음과 같습니다.

  1. 클러스터를 삭제하세요.

  2. 기존 클러스터와 충돌하지 않는 다른 이름으로 클러스터를 다시 만듭니다.

안티-어피니티 그룹 오류

다음과 유사한 오류 메시지가 뜨며 사용자 클러스터 생성에 실패합니다.

- Validation Category: VCenter
    - [FATAL] Hosts for AntiAffinityGroups: Anti-affinity groups enabled with
    available vsphere host number 1 less than 3, please add more vsphere hosts
    or disable anti-affinity groups.

VMware Distributed Resource Scheduler(DRS) 안티어피니티 규칙에는 vSphere 환경에 3개 이상의 물리적 호스트가 필요합니다. 이 문제를 해결하려면 다음과 같이 클러스터의 클러스터 세부정보 페이지에 있는 기능 섹션에서 안티어피니티 그룹을 사용 중지합니다.

  1. Google Cloud 콘솔에서 Anthos 클러스터 페이지로 이동합니다.

    Anthos 클러스터 페이지로 이동

  2. 사용자 클러스터가 있는 Cloud 프로젝트를 선택합니다.

  3. 클러스터 목록에서 클러스터 이름을 클릭한 다음 세부정보 패널에서 세부정보 보기를 클릭합니다.

  4. 기능 섹션에서 수정을 클릭합니다.

  5. 안티-어피니티 그룹 사용 설정을 선택 취소하고 완료를 클릭합니다.

  6. Google Cloud console에 클러스터 상태: 진행 중인 변경사항이 표시됩니다. 세부정보 표시를 클릭하여 리소스 상태 조건상태 메시지를 확인합니다.

IP 주소 충돌 오류

다음과 유사한 오류 메시지가 뜨며 사용자 클러스터 생성에 실패합니다.

- Validation Category: Network Configuration
- [FAILURE] CIDR, VIP and static IP (availability and overlapping): user: user
  cluster control plane VIP "10.251.133.132" overlaps with
  example-cluster1/control plane VIP "10.251.133.132"

현재 Google Cloud 콘솔에 있는 클러스터 세부정보 페이지의 부하 분산기 섹션에서 제어 영역 VIP인그레스 VIP와 같은 필드를 수정할 수 없습니다. 충돌하는 IP 주소를 수정하려면 다음 안내를 따르세요.

  1. 클러스터를 삭제하세요.

  2. 기존 클러스터와 충돌하지 않는 IP 주소로 클러스터를 다시 만듭니다.

Cloud 콘솔에서 클러스터 삭제 실패

사용자 클러스터를 삭제한 후에도 Google Cloud 콘솔에 계속 표시됩니다. 사용자 클러스터와 관리자 클러스터의 연결이 끊어졌을 때 발생할 수 있습니다. 이 문제를 해결하려면 Anthos On-Prem API 리소스 삭제의 단계를 수행합니다.

Anthos On-Prem API 리소스 삭제

Google Cloud 콘솔은 Anthos On-Prem API를 사용하여 사용자 클러스터 수명 주기를 관리합니다. Anthos On-Prem API에서 관리하도록 사용자 클러스터를 구성할 수도 있습니다. 다음과 같은 경우 Anthos On-Prem API 리소스는 삭제되지 않습니다.

  • Anthos On-Prem API에서 관리되는 사용자 클러스터의 노드 풀을 삭제하는 데 gkectl이 사용된 경우

  • Cloud 콘솔에서 생성된 사용자 클러스터의 관리자 클러스터가 삭제된 경우

Anthos On-Prem API 리소스가 삭제되지 않으면 사용자 클러스터는 Google Cloud 콘솔에 계속 비정상 상태로 표시됩니다. 다음 단계를 수행하여 남은 리소스를 삭제하세요.

  1. 다음 환경 변수를 설정합니다.

    export PROJECT_ID=FLEET_HOST_PROJECT_ID
    export REGION=REGION
    export CLUSTER_NAME=USER_CLUSTER_NAME
    

    다음을 바꿉니다.

    • FLEET_HOST_PROJECT_ID: 사용자 클러스터가 생성된 프로젝트 ID(Fleet 호스트 프로젝트이기도 함).

    • REGION: 클러스터의 리전. 리전은 콘솔의 위치 필드에 있는 클러스터의 세부정보 패널에 표시됩니다.

    • USER_CLUSTER_NAME: 클러스터 이름입니다.

  2. 사용자 클러스터의 노드 풀이 삭제된 경우에도 클러스터는 계속 Fleet에 등록됩니다. 다음 명령어를 실행하여 사용자 클러스터의 Fleet 멤버십을 삭제합니다.

    gcloud container fleet memberships delete USER_CLUSTER_NAME
    

    관리자 클러스터가 삭제된 경우에도 클러스터는 계속 Fleet에 등록됩니다. 다음 명령어를 실행하여 관리자 클러스터의 Fleet 멤버십을 삭제합니다.

    gcloud container fleet memberships delete ADMIN_CLUSTER_NAME
    

    자세한 내용은 gcloud command reference를 참조하세요.

  3. Anthos On-Prem API 메타데이터를 삭제합니다.

    curl -X DELETE "https://gkeonprem.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/vmwareClusters/${CLUSTER_NAME}:unenroll?force=true&allow_missing=true" \
    -H "Content-Type: application/json" \
    -H "X-GFE-SSL: yes" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)"