GKE On-Prem API에 등록된 클러스터 문제 해결

이 페이지에서는 Google Cloud 콘솔에서 Google Distributed Cloud 사용자 클러스터 생성 문제를 조사하는 방법을 설명합니다.

GKE On-Prem API는 Terraform 및 표준 Google Cloud 도구를 사용하여 온프레미스 클러스터의 수명 주기를 관리할 수 있게 해주는 Google Cloud 호스팅 API입니다. GKE On-Prem API는 Google Cloud 인프라에서 실행됩니다. Terraform, Google Cloud 콘솔, Google Cloud CLI는 API의 클라이언트이며 API를 사용하여 데이터 센터에서 클러스터를 생성, 업데이트, 업그레이드, 삭제합니다. 표준 클라이언트를 사용하여 클러스터를 만든 경우 클러스터가 GKE On-Prem API에 등록됩니다. 즉, 표준 클라이언트를 사용하여 클러스터의 수명 주기를 관리할 수 있습니다(일부 예외 있음).

추가 지원이 필요하면 Cloud Customer Care에 연락합니다.

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

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

등록 상태를 확인합니다.

  • Google Cloud 콘솔에서 Kubernetes Engine > 클러스터 페이지로 이동하여 사용자 클러스터를 생성하려고 시도한 것과 동일한 Google Cloud 프로젝트를 선택합니다.

    GKE 클러스터 페이지로 이동

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

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

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

  1. 관리자 클러스터의 Fleet 멤버십을 삭제합니다.

    gcloud container fleet memberships delete ADMIN_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=global
    
    • ADMIN_CLUSTER_NAME: 관리자 클러스터 이름
    • PROJECT_ID: Fleet 호스트 프로젝트의 ID. Google Cloud 콘솔에서 사용자 클러스터를 만들려고 할 때 선택한 프로젝트입니다.
  2. 관리자 클러스터 등록의 단계에 따라 클러스터를 다시 등록하세요.

클러스터 만들기 오류

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

리소스가 이미 있음 오류

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

Resource 'projects/1234567890/[...]/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 콘솔에서 GKE 클러스터 페이지로 이동합니다.

    GKE 클러스터 페이지로 이동

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

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

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

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

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

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 주소로 클러스터를 다시 만듭니다.

비정상 클러스터 삭제

클러스터는 다음과 같은 여러 이유로 비정상 상태가 될 수 있습니다.

  • Connect Agent 또는 온프레미스 환경에 연결 문제가 있는 경우
  • 사용자 클러스터의 관리자 클러스터가 삭제되었거나 관리자 클러스터와 사용자 클러스터 간 연결 문제가 있는 경우
  • 클러스터를 삭제하기 전에 클러스터의 VM이 삭제된 경우

콘솔에서 클러스터를 삭제할 수 없으면 gcloud CLI 명령어를 사용하여 비정상 클러스터에서 Google Cloud 리소스를 삭제합니다. 최근에 gcloud CLI를 업데이트하지 않았으면 다음 명령어를 실행하여 구성요소를 업데이트합니다.

gcloud components update

다음으로 Google Cloud 리소스를 삭제합니다.

사용자 클러스터

  1. 사용자 클러스터를 삭제합니다.

    gcloud container vmware clusters delete USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --force \
      --allow-missing \
      --ignore-errors

    다음을 바꿉니다.

    • USER_CLUSTER_NAME: 삭제할 사용자 클러스터의 이름

    • PROJECT_ID: 클러스터가 등록된 프로젝트의 ID

    • REGION: 사용자 클러스터와 연결된 Google Cloud 위치 콘솔에 위치가 표시됩니다.

      --force 플래그는 노드 풀이 있는 클러스터를 삭제합니다. --force 플래그가 없으면 먼저 노드 풀을 삭제한 후 클러스터를 삭제해야 합니다.

      --allow-missing 플래그를 사용하면 클러스터를 찾을 수 없는 경우에도 명령어가 계속 실행됩니다.

      --ignore-errors 플래그는 관리자 클러스터와 사용자 클러스터가 연결될 수 없을 때 Google Cloud 리소스를 삭제합니다. 일부 F5 또는 vSphere 리소스가 남아 있을 수 있습니다. 나머지 리소스 삭제에 대한 자세한 내용은 리소스 삭제를 참조하세요.

      이 명령어는 클러스터가 있으면 클러스터를 삭제하고 Google Cloud에서 GKE On-Prem API 및 Fleet 멤버십 리소스를 모두 삭제합니다.

  2. GKE On-Prem API 리소스가 삭제되었는지 확인합니다.

    gcloud container vmware clusters list \
      --project=PROJECT_ID \
      --location=-

    --location=-을 설정하면 모든 리전의 모든 클러스터가 나열됩니다. 목록의 범위를 좁혀야 하는 경우 --location특정 리전으로 설정합니다.

  3. Fleet 멤버십 리소스가 삭제되었는지 확인합니다.

    gcloud container fleet memberships list \
      --project=PROJECT_ID

관리자 클러스터

  1. GKE On-Prem API에 관리자 클러스터를 등록한 경우 등록 해제합니다.

    gcloud container vmware admin-clusters unenroll ADMIN_CLUSTER_NAME \
     --project=PROJECT_ID \
     --location=REGION \
     --allow-missing 
    

    다음을 바꿉니다.

    • ADMIN_CLUSTER_NAME: 관리자 클러스터 이름
    • PROJECT_ID: Fleet 호스트 프로젝트의 ID
    • REGION: Google Cloud 리전

    Fleet 멤버십을 찾을 수 없으면 --allow-missing 플래그에서 클러스터를 등록 해제합니다.

    이 명령어는 Google Cloud에서 GKE On-Prem API 리소스를 삭제합니다.

  2. Fleet에서 클러스터를 삭제합니다.

    gcloud container fleet memberships delete ADMIN_CLUSTER_NAME \
     --project=PROJECT_ID \
     --location=global

    이 명령어는 Google Cloud에서 Fleet 멤버십 리소스를 삭제합니다.

  3. GKE On-Prem API 리소스가 삭제되었는지 확인합니다.

    gcloud container fleet memberships delete ADMIN_CLUSTER_NAME --project=FLEET_HOST_PROJECT_ID
    

    --location=-을 설정하면 모든 리전의 모든 클러스터가 나열됩니다. 목록의 범위를 좁혀야 하는 경우 --location특정 리전으로 설정합니다.

  4. Fleet 멤버십 리소스가 삭제되었는지 확인합니다.

    gcloud container fleet memberships list \
      --project=PROJECT_ID

다음 단계

추가 지원이 필요하면 Cloud Customer Care에 문의하세요.