관리 클러스터 삭제

이 페이지에서는 GKE On-Prem 관리자 클러스터를 삭제하는 방법을 설명합니다.

시작하기 전에

관리자 클러스터를 삭제하기 전에 다음 단계를 완료하세요.

  • 사용자 클러스터를 삭제합니다. 사용자 클러스터 삭제를 참조하세요.
  • PodDisrashionBudgets(PDB)를 사용하는 모든 워크로드를 관리자 클러스터에서 삭제합니다.
  • PersistentVolume과 같은 모든 외부 객체를 관리자 클러스터에서 삭제합니다.
  • 삭제하려는 관리자 클러스터의 kubeconfig를 가리키는 KUBECONFIG 환경 변수를 설정합니다.

    export KUBECONFIG=[ADMIN_CLUSTER_KUBECONFIG]
    

    여기서 [ADMIN_CLUSTER_KUBECONFIG]는 관리자 클러스터의 kubeconfig 파일 경로입니다.

로깅 및 모니터링 삭제

StatefulSet에서 배포된 GKE On-Prem의 로깅 및 모니터링 Pod는 노드가 제대로 드레이닝되지 않도록 하는 PDB를 사용합니다. 관리자 클러스터를 올바르게 삭제하려면 이 Pod를 삭제해야 합니다.

로깅 및 모니터링 Pod를 삭제하려면 다음 명령어를 실행합니다.

kubectl delete monitoring --all -n kube-system
kubectl delete stackdriver --all -n kube-system

모니터링을 삭제하면 StatefulSet와 연결된 PersistentVolume(PV)이 삭제되지만 Stackdriver용 PersistentVolume은 별도로 삭제해야 합니다.

Stackdriver PV 삭제는 선택사항입니다. PV를 삭제하지 않기로 선택한 경우 사용자 클러스터 밖 외부 위치에 연결된 PV의 위치와 이름을 기록합니다.

PV 삭제는 영구 볼륨 신청(PVC) 삭제를 통해 전파됩니다.

Stackdriver PVC를 찾으려면 다음 명령어를 실행합니다.

kubectl get pvc -n kube-system

PVC를 삭제하려면 다음 명령어를 실행합니다.

kubectl delete pvc -n kube-system [PVC_NAME]

로깅 및 모니터링 삭제 확인

로깅과 모니터링이 삭제되었는지 확인하려면 다음 명령어를 실행합니다.

kubectl get pvc -n kube-system
kubectl get statefulsets -n kube-system

관리 클러스터의 F5 파티션 정리

관리자 클러스터에서 gke-system 네임스페이스를 삭제하면 F5 파티션이 올바르게 정리되므로 다른 관리자 클러스터에서 파티션을 재사용할 수 있습니다.

gke-system 네임스페이스를 삭제하려면 다음 명령어를 실행합니다.

kubectl delete ns gke-system

그런 다음 LoadBalancer 유형의 나머지 서비스를 삭제합니다. 모든 서비스를 나열하려면 다음 명령어를 실행합니다.

kubectl get services --all-namespaces

LoadBalancer 유형의 서비스마다 다음 명령어를 실행하여 삭제합니다.

kubectl delete service [SERVICE_NAME] -n [SERVICE_NAMESPACE]

그런 다음 F5 BIG-IP 콘솔에서 다음을 수행합니다.

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

F5 파티션이 깨끗한지 확인

CLI

다음 명령어를 실행하여 VIP가 다운되었는지 확인합니다.

ping -c 1 -W 1 [F5_LOAD_BALANCER_IP]; echo $?

VIP가 다운되면 1이 반환됩니다.

F5 UI

파티션이 F5 사용자 인터페이스에서 삭제되었는지 확인하려면 다음 단계를 수행합니다.

  1. 오른쪽 상단 구석에서 파티션 드롭다운 메뉴를 클릭합니다. 관리 클러스터의 파티션을 선택합니다.
  2. 왼쪽 기본 메뉴에서 로컬 트래픽 > 네트워크 맵을 선택합니다. 로컬 트래픽 네트워크 맵 아래에는 아무것도 표시되지 않습니다.
  3. 로컬 트래픽 > 가상 서버에서 노드를 선택한 다음 노드 목록을 선택합니다. 여기에도 아무것도 표시되지 않습니다.

남아 있는 항목이 있으면 UI에서 수동으로 삭제합니다.

관리 노드 머신 종료

관리자 제어 영역 노드 머신을 삭제하려면 vSphere 리소스 풀에 남아 있는 각각의 관리자 VM을 종료해야 합니다.

vSphere UI

다음 단계를 수행합니다.

  1. vSphere 메뉴에 들어가 vSphere 리소스 풀에서 VM을 선택합니다.
  2. VM 메뉴 상단에 있는 작업을 클릭합니다.
  3. 전원 > 전원 끄기를 선택합니다. VM이 종료되는 데 몇 분 정도 걸릴 수 있습니다.

관리 노드 머신 삭제

VM이 종료되면 VM을 삭제할 수 있습니다.

vSphere UI

다음 단계를 수행합니다.

  1. vSphere 메뉴에 들어가 vSphere 리소스 풀에서 VM을 선택합니다.
  2. VM 메뉴 상단에 있는 작업을 클릭합니다.
  3. 디스크에서 삭제를 클릭합니다.

완료 후

관리자 클러스터 삭제가 완료되면 해당 클러스터의 kubeconfig를 삭제합니다.

문제 해결

자세한 내용은 문제 해결을 참조하세요.

gkectl을 사용하여 클러스터 문제 진단

gkectl diagnose 명령어를 사용하여 클러스터 문제를 식별하고 클러스터 정보를 Google과 공유하세요. 클러스터 문제 진단을 참조하세요.

기본 로깅 동작

gkectlgkeadm의 경우 기본 로깅 설정만 사용해도 됩니다.

  • 기본적으로 로그 항목은 다음과 같이 저장됩니다.

    • gkectl의 기본 로그 파일은 /home/ubuntu/.config/gke-on-prem/logs/gkectl-$(date).log이며 파일은 gkectl을 실행하는 로컬 디렉터리의 logs/gkectl-$(date).log 파일과 심볼릭 링크됩니다.
    • gkeadm의 경우 기본 로그 파일은 gkeadm을 실행하는 로컬 디렉터리의 logs/gkeadm-$(date).log입니다.
  • 모든 로그 항목은 터미널에서 출력되지 않더라도 로그 파일에 저장됩니다(--alsologtostderrfalse인 경우).
  • -v5 세부정보 수준(기본값)에는 지원팀에 필요한 모든 로그 항목이 포함됩니다.
  • 로그 파일에는 실행된 명령어와 실패 메시지도 포함되어 있습니다.

도움이 필요한 경우 로그 파일을 지원팀에 보내는 것이 좋습니다.

로그 파일에 기본값이 아닌 위치 지정

gkectl 로그 파일에 기본값이 아닌 위치를 지정하려면 --log_file 플래그를 사용합니다. 지정한 로그 파일은 로컬 디렉터리와 심볼릭 링크되지 않습니다.

gkeadm 로그 파일에 기본값이 아닌 위치를 지정하려면 --log_file 플래그를 사용합니다.

관리자 클러스터에서 Cluster API 로그 찾기

관리자 제어 영역이 시작된 후에 VM을 시작하지 못하는 경우 다음 안내에 따라 관리자 클러스터에서 Cluster API 컨트롤러의 로그를 검사하여 디버깅할 수 있습니다.

  1. kube-system 네임스페이스에서 Cluster API 컨트롤러 pod의 이름을 찾습니다. 여기서 [ADMIN_CLUSTER_KUBECONFIG]는 관리자 클러스터의 kubeconfig 파일 경로입니다.

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system get pods | grep clusterapi-controllers
  2. pod의 로그를 엽니다. 여기서 [POD_NAME]은 pod 이름입니다. 원하는 경우 grep 또는 유사한 도구를 사용하여 오류를 검색할 수 있습니다.

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system logs [POD_NAME] vsphere-controller-manager