베어메탈용 Anthos 클러스터에서 장애 노드 재설정

스토리지, 네트워크, OS 구성 오류로 인해 베어메탈용 Anthos 클러스터 노드에 장애가 발생하면 클러스터 상태를 효율적으로 복원해야 합니다. 클러스터 상태를 복원한 후 노드 장애 문제를 해결할 수 있습니다.

이 문서에서는 노드를 재설정하고, 필요한 경우 노드를 강제로 삭제하여 노드 장애 시나리오에서 복구하는 방법을 보여줍니다.

노드에 장애가 발생하지 않은 일반적인 상황에서 클러스터에 노드를 추가하거나 삭제하려면 클러스터 업데이트를 참조하세요.

개요

노드 장애가 발생하면 노드에 연결할 수 없으므로 노드에서 재설정 명령어를 실행할 수 없는 경우가 있습니다. 클러스터에서 노드를 강제로 삭제해야 할 수도 있습니다.

노드를 완전히 재설정하고 클러스터를 업데이트하면 다음 작업이 수행됩니다.

  1. 노드가 kubeadm reset과 유사하게 재설정되고 머신이 사전 설치된 상태로 돌아갑니다.
  2. 노드에 대한 관련 참조가 노드 풀 및 클러스터 커스텀 리소스에서 삭제됩니다.

워커 노드

클러스터에서 노드를 삭제하려면 먼저 노드를 완전히 제거하세요.

  1. 노드를 완전히 재설정해 보세요. 노드가 재설정되면 클러스터에서 노드가 삭제됩니다.

    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 파일의 경로

    이제 노드를 진단하고 초기 장애를 유발한 구성 오류를 수정할 수 있습니다. 이 섹션의 나머지 단계를 건너뜁니다.

  2. 노드 재설정을 위한 이전 단계가 실패하면 클러스터에서 노드를 강제로 삭제할 수 있습니다. 이러한 강제 삭제는 재설정 명령어를 실행하는 이전 단계를 건너뛰고 노드 풀 및 클러스터 커스텀 리소스에서 노드에 대한 관련 참조를 삭제하는 단계만 수행합니다.

    bmctl reset nodes \
     --addresses COMMA_SEPARATED_IPS \
     --cluster CLUSTER_NAME \
     --kubeconfig ADMIN_KUBECONFIG \
     --force
    

    이제 노드를 진단하고 초기 장애를 유발한 구성 오류를 수정할 수 있습니다.

  3. 이전 단계의 노드 클러스터에서 노드를 강제 삭제한 경우 bmctl reset 명령어를 다시 실행하여 노드를 재설정합니다.

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG
    

단일 제어 영역 노드 장애

프로세스는 워커 노드와 동일합니다. 제어 영역 노드의 경우 bmctletcd 멤버십도 정리합니다.

클러스터에서 노드를 삭제하려면 먼저 노드를 완전히 제거하세요.

  1. 노드를 완전히 재설정해 보세요. 노드가 재설정되면 클러스터에서 노드가 삭제됩니다.

    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 파일의 경로

    이제 노드를 진단하고 초기 장애를 유발한 구성 오류를 수정할 수 있습니다. 이 섹션의 나머지 단계를 건너뜁니다.

  2. 노드 재설정을 위한 이전 단계가 실패하면 클러스터에서 노드를 강제로 삭제할 수 있습니다. 이러한 강제 삭제는 재설정 명령어를 실행하는 이전 단계를 건너뛰고 노드 풀 및 클러스터 커스텀 리소스에서 노드에 대한 관련 참조를 삭제하는 단계만 수행합니다.

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG \
      --force
    

    이제 노드를 진단하고 초기 장애를 유발한 구성 오류를 수정할 수 있습니다.

  3. 이전 단계의 노드 클러스터에서 노드를 강제 삭제한 경우 bmctl reset 명령어를 다시 실행하여 노드를 재설정합니다.

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG
    

HA 제어 영역에서 쿼럼 손실

HA 클러스터에 너무 많은 제어 영역 노드가 실패 상태가 되면 클러스터의 쿼럼이 손실되고 사용 불가능하게 됩니다.

  1. 쿼럼이 손실된 클러스터를 복구하려면 나머지 정상 노드에서 다음 명령어를 실행합니다.

    bmctl restore --control-plane-node CONTROL_PLANE_NODE \
      --cluster CLUSTER_NAME \
      [--kubeconfig KUBECONFIG_FILE]
    

    다음 값을 바꿉니다.

    • CONTROL_PLANE_NODE: 클러스터의 일부로 남아 있는 정상 노드의 IP 주소
    • CLUSTER_NAME: 장애가 발생한 노드가 포함된 대상 클러스터의 이름
    • KUBECONFIG_FILE: 사용자 클러스터를 복구하는 경우 사용자 클러스터 kubeconfig 파일의 경로
  2. 장애가 발생한 노드를 복구한 후 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 주소를 경합하고 새 클러스터를 불안정하게 만들 수 있습니다. 노드를 복구한 후 장애가 발생한 노드에 대해 가능한 한 빨리 재설정 명령어를 실행합니다.

다음 단계

장애가 없을 때 클러스터에서 노드를 추가하거나 삭제하는 방법과 노드 상태를 확인하는 방법에 대한 자세한 내용은 클러스터 업데이트를 참조하세요.