스토리지, 네트워크 또는 OS 구성 오류로 인해 발생할 수 있는 Google Distributed Cloud의 노드 실패 시 클러스터 상태를 효율적으로 복원해야 합니다. 클러스터 상태를 복원한 후 노드 장애 문제를 해결할 수 있습니다. 이 문서에서는 노드를 재설정하고 필요한 경우 노드를 강제로 삭제하여 노드 실패 시나리오에서 복구하는 방법을 보여줍니다.
노드에 장애가 발생하지 않은 클러스터에서 노드를 추가하거나 삭제하려면 클러스터 업데이트를 참조하세요.
추가 지원이 필요하면 Cloud Customer Care에 연락합니다.노드 재설정
노드 장애가 발생하면 노드에 연결할 수 없으므로 노드에서 재설정 명령어를 실행할 수 없는 경우가 있습니다. 클러스터에서 노드를 강제로 삭제해야 할 수도 있습니다.
노드를 완전히 재설정하고 클러스터를 업데이트하면 다음 작업이 수행됩니다.
- 노드가
kubeadm reset
과 유사하게 재설정되고 머신이 사전 설치된 상태로 돌아갑니다. - 노드에 대한 관련 참조가 노드 풀과 클러스터 커스텀 리소스에서 삭제됩니다.
다음 bmctl
명령어 중 일부에서 노드를 재설정하는 경우 --force
매개변수는 재설정 명령(1단계)을 건너뛸지 여부를 나타냅니다. --force
매개변수를 사용하면 bmctl
은 삭제 단계만 수행하고(2단계) 재설정 명령어를 실행하지 않습니다.
워커 노드 삭제
클러스터에서 워커 노드를 삭제하려면 다음 단계를 완료합니다.
노드를 완전히 재설정해 보세요. 노드가 재설정되면 노드가 클러스터에서 삭제됩니다.
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
다음을 바꿉니다.
COMMA_SEPARATED_IP
: 재설정할 노드의 IP 주소(예:10.200.0.8,10.200.0.9
)CLUSTER_NAME
: 장애가 발생한 노드가 포함된 대상 클러스터의 이름ADMIN_KUBECONFIG
: 관리자 클러스터kubeconfig
파일의 경로입니다.
이 명령어가 성공하면 노드를 진단하고 초기 실패를 유발한 잘못된 구성을 수정할 수 있습니다. 이 섹션의 나머지 단계를 건너뜁니다.
이전 노드 재설정 단계가 실패한 경우 클러스터에서 노드를 강제로 삭제합니다. 이 강제 삭제는 재설정 명령어를 실행하는 이전 단계를 건너뛰고 노드 풀 및 클러스터 커스텀 리소스에서 노드에 대한 관련 참조를 삭제하는 단계만 수행합니다.
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG \ --force
이제 노드를 진단하고 초기 실패를 유발한 잘못된 구성을 수정할 수 있습니다.
이전 단계의 노드 클러스터에서 노드를 강제 삭제한 경우
bmctl reset
명령어를 다시 실행하여 노드를 재설정합니다.bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
단일 제어 영역 노드 삭제
이 프로세스는 워커 노드와 동일합니다. 제어 영역 노드의 경우 bmctl
은 etcd
멤버십도 정리합니다.
실패한 노드를 삭제하면 클러스터가 고가용성(HA) 상태가 되지 않습니다. HA 상태로 돌아가려면 클러스터에 정상 노드를 추가합니다.
클러스터에서 노드를 삭제하려면 다음 단계를 완료합니다.
노드를 완전히 재설정해 보세요. 노드가 재설정되면 노드가 클러스터에서 삭제됩니다.
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
다음 값을 바꿉니다.
COMMA_SEPARATED_IP
: 재설정할 노드의 IP 주소(예:10.200.0.8,10.200.0.9
)CLUSTER_NAME
: 장애가 발생한 노드가 포함된 대상 클러스터의 이름ADMIN_KUBECONFIG
: 관리자 클러스터kubeconfig
파일의 경로입니다.
이 명령어가 성공하면 노드를 진단하고 초기 실패를 유발한 잘못된 구성을 수정할 수 있습니다. 이 섹션의 나머지 단계를 건너뜁니다.
이전 노드 재설정 단계가 실패한 경우 클러스터에서 노드를 강제로 삭제할 수 있습니다. 이 강제 삭제는 재설정 명령어를 실행하는 이전 단계를 건너뛰고 노드 풀 및 클러스터 커스텀 리소스에서 노드에 대한 관련 참조를 삭제하는 단계만 수행합니다.
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG \ --force
이제 노드를 진단하고 초기 실패를 유발한 잘못된 구성을 수정할 수 있습니다.
이전 단계의 노드 클러스터에서 노드를 강제 삭제한 경우
bmctl reset
명령어를 다시 실행하여 노드를 재설정합니다.bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
HA 제어 영역에서 쿼럼 손실
HA 클러스터에 너무 많은 제어 영역 노드가 실패 상태가 되면 클러스터의 쿼럼이 손실되고 사용 불가능하게 됩니다.
관리 클러스터를 복원해야 하는 경우 재설정 명령어에 kubeconfig
파일을 제공하지 마세요. 관리 클러스터에 kubeconfig
파일을 제공하면 새 클러스터가 강제로 재설정 작업을 수행합니다. 사용자 클러스터를 복원할 때 kubeconfig
파일의 경로를 제공하세요.
쿼럼이 손실된 클러스터를 복구하려면 나머지 정상 노드에서 다음 명령어를 실행합니다.
bmctl restore --control-plane-node CONTROL_PLANE_NODE \ --cluster CLUSTER_NAME \ [--kubeconfig KUBECONFIG_FILE]
다음을 바꿉니다.
CONTROL_PLANE_NODE
: 클러스터의 일부로 남아 있는 정상 노드의 IP 주소CLUSTER_NAME
: 장애가 발생한 노드가 포함된 대상 클러스터의 이름KUBECONFIG_FILE
: 사용자 클러스터를 복구하는 경우 사용자 클러스터kubeconfig
파일의 경로
실패한 노드를 복구한 후
bmctl reset
명령어를 실행하여 노드를 재설정합니다.bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ [--kubeconfig KUBECONFIG_FILE]
다음을 바꿉니다.
COMMA_SEPARATED_IP
: 재설정할 노드의 IP 주소(예:10.200.0.8,10.200.0.9
)CLUSTER_NAME
: 장애가 발생한 노드가 포함된 대상 클러스터의 이름KUBECONFIG_FILE
: 관리자 클러스터kubeconfig
파일의 경로
실패한 노드가 부하 분산기 노드 풀에 속한 경우 노드가 복구되면 제어 영역 가상 IP 주소를 위해 경합할 수 있으며 새 클러스터가 불안정해질 수 있습니다. 노드를 복구한 후 장애가 발생한 노드에 대해 가능한 한 빨리 재설정 명령어를 실행합니다.
이 프로세스는 3노드 제어 영역 HA 배포에 대한 재해 복구를 처리합니다. 이 프로세스는 노드가 5개 이상 있는 HA 설정 복구를 지원하지 않습니다.
다음 단계
장애가 없을 때 클러스터에서 노드를 추가하거나 삭제하는 방법과 노드 상태를 확인하는 방법에 대한 자세한 내용은 클러스터 업데이트를 참조하세요.
- 추가 지원이 필요하면 Cloud Customer Care에 연락합니다.