사용자 클러스터 삭제

이 페이지에서는 VMware용 GKE 사용자 클러스터를 삭제하는 방법을 설명합니다. 사용자 클러스터를 삭제하면 Fleet에서 클러스터의 등록이 취소되고 워크로드, 노드 풀, 제어 영역 노드 외에도 VM, F5 파티션, 데이터 디스크 같은 해당 리소스가 삭제됩니다.

클러스터 삭제 도구 선택

사용자 클러스터를 삭제하는 방법은 클러스터가 GKE On-Prem API에 등록되었는지 여부에 따라 달라집니다. 다음 중 하나에 해당하는 경우 사용자 클러스터가 GKE On-Prem API에 등록된 것입니다.

  • Google Cloud 콘솔, Google Cloud CLI(gcloud CLI) 또는 GKE On-Prem API에 클러스터를 자동으로 등록하는 Terraform을 사용하여 클러스터를 만든 경우입니다. 이러한 표준 애플리케이션을 모두 합쳐서 GKE On-Prem API 클라이언트라고 부릅니다.

  • gkectl을 사용하여 클러스터를 만들었지만 GKE On-Prem API에 등록된 경우입니다.

클러스터가 GKE On-Prem API에 등록된 경우 GKE On-Prem API 클라이언트를 사용하여 클러스터를 삭제합니다. 클러스터가 GKE On-Prem API에 등록되지 않았으면 관리자 워크스테이션에서 gkectl을 사용하여 클러스터를 삭제합니다.

특정 프로젝트에서 GKE On-Prem API에 등록된 모든 사용자 클러스터를 찾으려면 다음 명령어를 실행하세요.

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

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

클러스터가 나열되었으면 GKE On-Prem API에 등록된 것입니다. 프로젝트 소유자가 아닌 경우 등록된 클러스터를 삭제하려면 적어도 프로젝트에 대한 Identity and Access Management 역할 roles/gkeonprem.admin을 부여받아야 합니다. 이 역할에 포함된 권한에 대한 자세한 내용은 IAM 문서의 GKE On-Prem API 역할을 참조하세요.

스테이트풀(Stateful) 워크로드 삭제

클러스터를 삭제하기 전에 kubectl delete를 실행하여 스테이트풀(Stateful) 워크로드, PVC, PV를 삭제합니다.

사용자 클러스터 삭제

gkectl

gkectl을 사용하여 GKE On-Prem API에 등록되지 않은 클러스터를 삭제할 수 있습니다. 조직의 프록시 및 방화벽 규칙이 gkeonprem.googleapis.comgkeonprem.mtls.googleapis.com(GKE On-Prem API의 서비스 이름)에 트래픽이 도달하도록 허용하는 경우 gkectl은 등록된 클러스터를 삭제할 수 있습니다.

관리자 워크스테이션에서 다음 명령어를 실행하여 클러스터를 삭제합니다.

gkectl delete cluster \
  --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
  --cluster CLUSTER_NAME

각 항목의 의미는 다음과 같습니다.

  • ADMIN_CLUSTER_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로
  • CLUSTER_NAME: 삭제할 사용자 클러스터의 이름

다음과 유사한 메시지가 표시되고 삭제에 실패한 경우:

Exit with error:
...
failed to unenroll user cluster CLUSTER_NAME
failed to create GKE On-Prem API client

이는 클러스터가 등록되었지만 gkectl이 GKE On-Prem API에 연결할 수 없었다는 의미입니다. 여기에서 가장 쉬운 방법은 GKE On-Prem API 클라이언트를 사용해서 클러스터를 삭제하는 것입니다.

사용자 클러스터를 삭제하는 데 절반이 실패하면 --force 플래그와 함께 gkectl을 실행하여 중간 오류를 무시하고 삭제를 계속할 수 있습니다.

gkectl delete cluster \
--kubeconfig ADMIN_CLUSTER_KUBECONFIG \
--cluster CLUSTER_NAME \
--force

Seesaw 번들 부하 분산기를 사용하는 경우 부하 분산기를 삭제합니다.

콘솔

GKE On-Prem API로 사용자 클러스터를 관리하는 경우 다음 단계를 수행하여 클러스터를 삭제합니다.

  1. 콘솔에서 Google Kubernetes Engine 클러스터 개요 페이지로 이동합니다.

    GKE 클러스터로 이동

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

  3. 클러스터 목록에서 삭제할 클러스터를 클릭합니다. 유형외부이면 클러스터가 gkectl을 사용하여 생성되었으며 GKE On-Prem API에 등록되지 않았음을 나타냅니다. 이 경우 gkectl 탭의 단계에 따라 클러스터를 삭제합니다.

    상태 열의 아이콘에 문제가 나타나는 경우 gcloud CLI 탭의 단계에 따라 클러스터를 삭제합니다. 삭제 명령어에 --ignore-errors 플래그를 추가해야 합니다.

  4. 삭제하려는 클러스터의 이름을 클릭합니다.

  5. 창 상단에 있는 세부정보 패널에서 삭제를 클릭합니다.

  6. 확인 메시지가 표시되면 클러스터 이름을 입력하고 삭제를 클릭합니다.

gcloud CLI

GKE On-Prem API로 사용자 클러스터를 관리하는 경우 gcloud CLI가 설치된 컴퓨터에서 다음을 수행합니다.

  1. 구성요소를 업데이트합니다.

    gcloud components update
    
  2. delete 명령어에 올바른 클러스터 이름을 지정하는 데 도움이 되는 클러스터 목록을 가져옵니다.

    gcloud container vmware clusters list \
      --project=FLEET_HOST_PROJECT_ID \
      --location=LOCATION
    

    다음을 바꿉니다.

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

    • LOCATION: 사용자 클러스터와 연결된 Google Cloud 위치

    출력은 다음과 비슷합니다.

    NAME                      LOCATION    VERSION          ADMIN_CLUSTER.            STATE
    example-user-cluster-1a   us-west1    1.28.300-gke.123    example-admin-cluster-1   RUNNING
    
  3. 다음 명령어를 사용하여 클러스터를 삭제합니다.

    gcloud container vmware clusters delete USER_CLUSTER_NAME \
      --project=FLEET_HOST_PROJECT_ID \
      --location=LOCATION \
      --force \
      --allow-missing
    

    다음을 바꿉니다.

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

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

    • LOCATION: 사용자 클러스터와 연결된 Google Cloud 위치

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

    --allow-missing 플래그는 표준 Google API 플래그입니다. 이 플래그를 포함할 때 클러스터를 찾을 수 없으면 명령어가 성공을 반환합니다.

    명령어가 failed connecting to the cluster's control plane 텍스트가 포함된 오류를 반환하는 경우 관리자 클러스터, Connect Agent 또는 온프레미스 환경에 연결 문제가 있다는 것입니다.

    • 네트워크 문제로 인해 연결 문제가 일시적이라고 생각되면 기다렸다가 명령어를 다시 시도하세요.

    • 명령어 재시도가 계속 실패하면 Connect 에이전트 로그 수집을 참조하여 Connect Agent 문제를 해결하세요.

    • 관리자 클러스터가 삭제되었거나 관리자 또는 사용자 클러스터의 VM이 종료되었거나 액세스할 수 없는 경우 --ignore-errors 플래그를 포함하여 명령어를 다시 시도합니다.

다른 플래그에 대한 자세한 내용은 gcloud CLI 참조를 확인하세요.

리소스 삭제

클러스터를 삭제할 때 문제가 발생하면 F5 또는 vSphere 리소스가 남아 있을 수 있습니다. 다음 섹션에서는 이렇게 남은 리소스를 정리하는 방법을 설명합니다.

vSphere에서 사용자 클러스터의 VM 정리

사용자 클러스터의 VM이 삭제되었는지 확인하려면 다음 단계를 수행합니다.

  1. vSphere Web Client의 왼쪽 탐색기 메뉴에서 호스트 및 클러스터 메뉴를 클릭합니다.

  2. 관리자 클러스터의 리소스 풀을 찾습니다. 이 값은 관리자 클러스터 구성 파일의 vCenter.resourcePool 값입니다.

  3. 리소스 풀에서 사용자 클러스터 이름이 프리픽스로 지정된 VM을 찾습니다. 사용자 클러스터의 제어 영역 노드입니다. 사용자 클러스터에 고가용성 제어 영역이 있는지 여부에 따라 이들 중 1개 또는 3개가 사용됩니다.

  4. 사용자 클러스터의 리소스 풀을 찾습니다. 이는 사용자 클러스터 구성 파일의 vCenter.resourcePool 값입니다. 사용자 클러스터 구성 파일이 리소스 풀을 지정하지 않으면 관리자 클러스터에서 상속됩니다.

  5. 리소스 풀의 사용자 클러스터에서 노드 풀 이름이 프리픽스로 지정된 VM을 찾습니다. 이것들은 사용자 클러스터의 워커 노드입니다.

  6. 각 제어 영역 노드 및 각 워커 노드에 대해 다음을 수행합니다.

    1. vSphere Web Client에서 VM을 마우스 오른쪽 버튼으로 클릭하고 전원 > 전원 끄기를 선택합니다.

    2. VM이 종료된 후 마우스 오른쪽 버튼으로 VM을 클릭하고 디스크에서 삭제를 선택합니다.

사용자 클러스터의 F5 파티션 정리

사용자 클러스터의 파티션에 남아 있는 항목이 있으면 다음 단계를 수행합니다.

  1. F5 BIG-IP 콘솔의 콘솔 오른쪽 상단 구석에서 정리하려는 사용자 클러스터 파티션으로 전환합니다.
  2. 로컬 트래픽 > 가상 서버 > 가상 서버 목록을 선택합니다.
  3. 가상 서버 메뉴에서 모든 가상 IP를 삭제합니다.
  4. 을 선택한 다음 모든 풀을 삭제합니다.
  5. 노드를 선택한 후 모든 노드를 삭제합니다.

완료 후

클러스터가 삭제된 후 사용자 클러스터의 kubeconfig를 삭제할 수 있습니다.