클러스터 노드 재설정

클러스터가 설치되는 동안 바이너리 및 systemd 서비스가 클러스터를 호스팅하는 노드에 설치되고 서비스에서 노드의 포트를 리슨하기 시작합니다.

하지만 클러스터 설치에 실패하면 이러한 모든 바이너리와 서비스를 삭제해야 합니다. 즉, 클러스터 설치를 재시도할 수 있도록 준비하기 위해 노드를 재설정하거나 완전 삭제해야 합니다. 노드가 이러한 방식으로 재설정되지 않으면 다음에 클러스터 설치 시도가 실패합니다.

bmctl reset 명령어에서 노드 삭제 작업을 수행합니다. 전체 클러스터나 클러스터의 특정 노드에서 bmctl reset 명령어를 실행할 수 있으며 이 문서에서는 두 모드 모두에서 명령어를 실행하는 방법을 설명합니다.

bmctl reset 명령어를 클러스터에 적용하면 명령어가 모든 클러스터 바이너리와 서비스에서 노드를 완전 삭제하므로 클러스터가 삭제됩니다.

bmctl reset cluster를 사용하여 클러스터 재설정

클러스터를 재설정하면 클러스터가 삭제됩니다. 클러스터가 삭제되면 필요한 구성을 변경한 후에 다시 설치할 수 있습니다.

자체 관리형 클러스터 재설정

관리자, 하이브리드, 독립형 클러스터를 재설정하려면 다음 명령어를 실행합니다.

bmctl reset --cluster CLUSTER_NAME

명령어에서 CLUSTER_NAME을 재설정하려는 클러스터의 이름으로 바꿉니다.

클러스터 재설정이 완료되면 새 클러스터를 만들 수 있습니다. 자세한 내용은 클러스터 만들기 개요를 참조하세요.

사용자 클러스터 재설정

bmctl reset 명령어나 kubectl delete 명령어를 사용하여 사용자 클러스터를 재설정하거나 삭제할 수 있습니다. 두 경우 모두 클러스터가 삭제됩니다. bmctl reset을 사용하는 것이 좋습니다.

bmctl을 사용하여 사용자 클러스터 재설정/삭제

다음 명령어를 실행하여 bmctl로 사용자 클러스터를 재설정/삭제합니다.

bmctl reset --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH

명령어에서 다음 항목을 개발자 환경에 해당하는 정보로 바꿉니다.

  • CLUSTER_NAME: 재설정하려는 사용자 클러스터의 이름입니다.

  • ADMIN_KUBECONFIG_PATH: 연결된 관리자 클러스터의 kubeconfig 파일 경로입니다. bmctl--kubeconfig--admin-kubeconfig 플래그의 별칭으로 사용하도록 지원합니다.

kubectl을 사용하여 사용자 클러스터 삭제

kubectl을 사용하여 사용자 클러스터를 삭제하려면 먼저 클러스터 객체를 삭제한 후 해당 네임스페이스를 삭제해야 합니다. 그렇지 않으면 머신 재설정 작업을 만들 수 없고 삭제 프로세스가 무기한 막힐 수 있습니다.

kubectl로 사용자 클러스터를 삭제하려면 다음 안내를 따르세요.

  1. 다음 명령어를 실행하여 클러스터 객체를 삭제합니다.

    kubectl delete cluster CLUSTER_NAME -n CLUSTER_NAMESPACE \
        --kubeconfig ADMIN_KUBECONFIG_PATH

    명령어에서 다음 항목을 개발자 환경에 해당하는 정보로 바꿉니다.

    • CLUSTER_NAME: 삭제할 사용자 클러스터의 이름입니다.

    • CLUSTER_NAMESPACE: 클러스터의 네임스페이스입니다. 기본적으로 베어메탈용 Anthos 클러스터에 대한 클러스터 네임스페이스는 cluster-가 앞에 표시된 클러스터 이름입니다. 예를 들어 클러스터 이름을 test로 지정한 경우 네임스페이스 이름은 cluster-test가 됩니다.

    • ADMIN_KUBECONFIG_PATH: 연결된 관리자 클러스터의 kubeconfig 파일 경로입니다.

  2. 클러스터가 성공적으로 삭제되었으면 다음 명령어를 실행하여 네임스페이스를 삭제합니다.

    kubectl delete namespace CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH

특정 클러스터 노드 재설정

예를 들어 관리자 클러스터가 삭제되었지만 관리자 클러스터에서 관리하는 사용자 클러스터가 남아 있는 경우 클러스터의 특정 노드를 재설정할 수 있습니다. 이 경우 관리자 클러스터가 삭제되었으므로 전체 사용자 클러스터를 삭제할 수 없습니다. 따라서 사용자 클러스터 노드를 개별적으로 재설정해야 합니다.

GCR 서비스 계정의 JSON 키를 사용하여 노드 재설정

클러스터의 개별 노드를 재설정하려면 다음 명령어를 실행합니다.

bmctl reset nodes --addresses NODE_1_IP_ADDRESS,NODE_2_IP_ADDRESS \
    --ssh-key-private-path SSH_KEY_PATH \
    --gcr-service-account-key SERVICE_ACCOUNT_KEY_PATH \
    --login-user root

명령어에서 다음 항목을 개발자 환경에 해당하는 정보로 바꿉니다.

  • NODE_1_IP_ADDRESS , NODE_2_IP_ADDRESS: 삭제할 노드의 IP 주소를 쉼표로 구분한 목록입니다.

  • SSH_KEY_PATH: SSH 비공개 키의 경로입니다.

  • SERVICE_ACCOUNT_KEY_PATH: 서비스 계정 키가 포함된 JSON 파일의 경로입니다. 이 키는 Google Container Registry(GCR)에서 이미지를 가져올 수 있는 bmctl 권한을 부여합니다. Google Cloud Console, gcloud CLI, serviceAccounts.keys.create() 메서드 또는 클라이언트 라이브러리 중 하나를 사용하여 서비스 계정 키를 만들 수 있습니다. 자세한 내용은 서비스 계정 키 만들기 및 관리를 참조하세요. 서비스 계정 키 파일을 만드는 또 다른 방법은 --create-service-accounts 플래그가 지정된 create config 명령어를 실행하는 것입니다. 해당 명령어에 대한 자세한 내용은 bmctl을 사용하여 클러스터 구성 만들기 및 관리를 참조하세요.

클러스터 세부정보 재설정

bmctl cluster reset 명령어의 결과는 이 샘플과 비슷하게 표시됩니다.

bmctl reset --cluster cluster1
Creating bootstrap cluster... OK
Deleting GKE Hub member admin in project my-gcp-project...
Successfully deleted GKE Hub member admin in project my-gcp-project
Loading images... OK
Starting reset jobs...
Resetting: 1    Completed: 0    Failed: 0
...
Resetting: 0    Completed: 1    Failed: 0
Flushing logs... OK

재설정 작업 중에 bmctl은 먼저 GKE 허브 멤버십 등록 삭제를 시도한 다음 영향을 받은 노드를 삭제합니다. 초기화 중에는 anthos-system StorageClass의 스토리지 마운트 및 데이터도 삭제됩니다.

모든 노드에 대해 bmctlkubeadm reset을 실행하고, 클러스터 네트워킹에 사용되는 터널 인터페이스를 삭제하고, 다음 디렉터리를 삭제합니다.

  • /etc/kubernetes
  • /etc/cni/net.d
  • /root/.kube
  • /var/lib/kubelet

부하 분산기 노드에서 bmctl도 다음 작업을 수행합니다.

  • keepalivedhaproxy 서비스를 사용 중지합니다.
  • keepalivedhaproxy의 구성 파일을 삭제합니다.

bmctl reset 명령어는 클러스터 구성 파일이 현재 작업 디렉터리에 있다고 가정합니다. 기본적으로 경로는 bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yaml과 같습니다.

--workspace-dir 플래그를 사용하여 클러스터 만들기 중에 다른 디렉터리를 지정한 경우 클러스터를 재설정할 때도 이 플래그를 사용해서 작업 디렉터리를 지정해야 합니다.