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 콘솔에서 클러스터를 만드는 과정에서 발생하는 몇 가지 오류를 설명합니다.

리소스가 이미 있음 오류

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

Resource 'projects/1234567890/[...]/user-cluster1'
already exists
Request ID: 129290123128705826

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

이 문제를 해결하는 한 가지 방법은 클러스터를 삭제하고 다시 만드는 것입니다.

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

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 또는 온프레미스 환경에 연결 문제가 있는 경우
  • 사용자 클러스터의 관리자 클러스터가 삭제되었거나 관리자 클러스터와 사용자 클러스터 간 연결 문제가 있습니다.

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

gcloud components update

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

사용자 클러스터

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

    gcloud container bare-metal 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 리소스를 삭제합니다.

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

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

    gcloud container bare-metal 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 bare-metal admin-clusters unenroll ADMIN_CLUSTER_NAME \
     --project=PROJECT_ID \
     --location=REGION \
     --allow-missing --ignore-errors
    

    다음을 바꿉니다.

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

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

    --ignore-errors 플래그는 관리자 클러스터와 사용자 클러스터가 연결될 수 없을 때 Google Cloud 리소스를 삭제합니다.

    이 명령어는 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에 문의하세요.