노드 자동 복구


이 페이지에서는 노드 자동 복구 작동 방식과 표준 Google Kubernetes Engine(GKE) 클러스터 기능을 사용하는 방법을 설명합니다.

노드 자동 복구는 GKE 클러스터의 노드를 정상 작동 상태로 유지하는 데 도움이 됩니다. 이 기능이 사용 설정되면 GKE는 클러스터의 각 노드 상태를 주기적으로 확인합니다. 노드가 장시간 동안 연속으로 상태 검사에 실패하면 GKE는 해당 노드의 복구 프로세스를 시작합니다.

Autopilot 및 Standard 설정

Autopilot 클러스터는 항상 노드를 자동으로 복구합니다. 이 설정은 중지할 수 없습니다.

Standard 클러스터에서는 노드 자동 복구가 새 노드 풀에 대해 기본적으로 사용 설정됩니다. 기존 노드 풀의 자동 복구를 중지할 수 있지만 기본 구성을 유지하는 것이 좋습니다.

복구 기준

GKE는 노드의 상태를 사용하여 노드를 복구해야 하는지 결정합니다. Ready 상태를 보고하는 노드는 정상으로 간주됩니다. 노드가 일정 시간 임계값 동안 연이어 비정상 상태를 보고하는 경우 GKE가 복구 작업을 트리거합니다. 비정상 상태의 뜻은 다음과 같습니다.

  • 일정 시간 임계값(약 10분) 동안 노드가 연이은 검사에서 NotReady 상태를 보고하는 경우
  • 일정 시간 임계값(약 10분) 동안 노드가 상태를 전혀 보고하지 않는 경우
  • 장시간(약 30분) 동안 노드의 부팅 디스크에 디스크 공간이 부족한 경우

kubectl get nodes 명령어를 사용하면 언제든 노드의 상태 신호를 수동으로 검사할 수 있습니다.

노드 복구 프로세스

노드 복구가 필요함을 GKE가 감지하면 해당 노드는 드레이닝되고 다시 만들어집니다. GKE는 드레이닝이 완료될 때까지 1시간을 기다립니다. 드레이닝이 완료되지 않으면 노드가 종료되고 새 노드가 생성됩니다.

여러 노드의 복구가 필요한 경우 GKE는 여러 노드를 동시에 복구할 수 있습니다. GKE는 클러스터 크기와 손상된 노드 수에 따라 복구 수를 조정합니다. 큰 클러스터에서는 GKE가 동시에 복구하는 노드 수가 늘어나지만 비정상 노드 수가 증가하면 동시에 복구하는 노드 수가 줄어듭니다.

복구 프로세스 중에 언제든지 노드 자동 복구를 중지하면 진행 중인 복구는 취소되지 않으며 현재 복구 중인 노드가 계속 복구됩니다.

노드 복구 내역

GKE는 자동 복구 이벤트의 로그 항목을 생성합니다. 다음 명령어를 실행하여 로그를 확인할 수 있습니다.

gcloud container operations list

TPU 슬라이스 노드의 노드 자동 복구

멀티 호스트 TPU 슬라이스 노드 풀의 TPU 슬라이스 노드가 비정상 상태이고 자동 복구가 필요하면 전체 노드 풀이 다시 생성됩니다. TPU 슬라이스 노드 상태에 대한 자세한 내용은 TPU 슬라이스 노드 자동 복구를 참조하세요.

기존 Standard 노드 풀에 자동 복구 사용 설정

노드 자동 복구는 노드 풀 단위로 사용 설정할 수 있습니다.

Standard 클러스터의 기존 노드 풀에서 자동 복구가 중지된 경우 다음 안내에 따라 사용 설정합니다.

gcloud

gcloud container node-pools update POOL_NAME \
    --cluster CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --enable-autorepair

다음을 바꿉니다.

  • POOL_NAME: 노드 풀의 이름입니다.
  • CLUSTER_NAME: 표준 클러스터의 이름입니다.
  • COMPUTE_REGION: 클러스터의 Compute Engine 리전입니다. 영역 클러스터의 경우 --zone COMPUTE_ZONE 옵션을 사용합니다.

콘솔

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 클러스터 목록에서 수정하려는 클러스터 이름을 클릭합니다.

  3. 노드 탭을 클릭합니다.

  4. 노드 풀에서 수정하려는 노드 풀의 이름을 클릭합니다.

  5. 노드 풀 세부정보 페이지에서 수정을 클릭합니다.

  6. 관리에서 자동 복구 사용 설정 체크박스를 선택합니다.

  7. 저장을 클릭합니다.

Standard 노드 풀에 노드 자동 복구가 사용 설정되어 있는지 확인

노드 자동 복구는 노드 풀 단위로 사용 설정됩니다. Google Cloud CLI 또는 Google Cloud 콘솔을 사용하여 클러스터의 노드 풀에 자동 복구가 사용 설정되었는지 확인할 수 있습니다.

gcloud

노드 풀을 설명합니다.

gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME

노드 자동 복구가 사용 설정되면 명령어 출력에 다음 줄이 포함됩니다.

management:
  ...
  autoRepair: true

콘솔

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. Google Kubernetes Engine 페이지에서 검사하려는 노드 풀의 클러스터 이름을 클릭합니다.

  3. 노드 탭을 클릭합니다.

  4. 노드 풀 아래에서 검사하려는 노드 풀의 이름을 클릭합니다.

  5. 관리자동 복구 필드에서 자동 복구가 사용 설정되어 있는지 확인합니다.

노드 자동 복구 사용 중지

gcloud CLI 또는 Google Cloud Console을 사용하여 표준 클러스터에 있는 기존 노드 풀의 노드 자동 복구를 사용 중지할 수 있습니다.

gcloud

gcloud container node-pools update POOL_NAME \
    --cluster CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --no-enable-autorepair

다음을 바꿉니다.

  • POOL_NAME: 노드 풀의 이름입니다.
  • CLUSTER_NAME: 표준 클러스터의 이름입니다.
  • COMPUTE_REGION: 클러스터의 Compute Engine 리전입니다. 영역 클러스터의 경우 --zone COMPUTE_ZONE 옵션을 사용합니다.

콘솔

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 클러스터 목록에서 수정하려는 클러스터 이름을 클릭합니다.

  3. 노드 탭을 클릭합니다.

  4. 노드 풀에서 수정하려는 노드 풀의 이름을 클릭합니다.

  5. 노드 풀 세부정보 페이지에서 수정을 클릭합니다.

  6. 관리에서 자동 복구 사용 설정 체크박스를 선택 취소합니다.

  7. 저장을 클릭합니다.

다음 단계