이 문서에서는 명령줄과 GKE 유지보수 대시보드를 사용하여 호스트 유지보수 작업을 보는 방법을 설명합니다.
호스트 유지보수 작업을 보면 특히 주기적인 인프라 중단으로 인해 중단될 수 있는 워크로드가 있는 장기 실행 GKE 클러스터의 워크로드 중단을 완화하는 데 도움이 될 수 있습니다.
GKE의 호스트 유지보수에 대한 자세한 내용은 GKE에서 호스트 유지보수를 수행하는 방법 이해를 참조하세요.
유지보수 알림 모니터링
VM에 예약된 유지보수 이벤트가 있기 전에
Compute Engine은 모든 VM에 알림을 푸시합니다. 이러한 알림은 Compute Engine 유지보수 기간의 시작을 보고합니다. VM에서 예정된 유지보수가 예약되었지만 활성 상태가 아니면 GKE는 노드 라벨에 scheduled-maintenance-time을 추가합니다.
예정된 유지보수 이벤트를 모니터링하고 감지하려면 GKE와 Compute Engine의 알림을 모두 확인해야 합니다.
Compute Engine에서 예정된 유지보수 보기
Compute Engine issues 알림 은 노드와 기본 VM이 중단 호스트 이벤트로 예약될 때와 이러한 이벤트가 활성화될 때 발행됩니다. 알림에는 계획된 시작 시간, 이벤트 유형, 기타 세부정보에 대한 정보가 포함됩니다.
GKE에서 예정된 유지보수 보기
GKE 버전 1.31.1-gke.2008000 이상 및 특정 머신 유형의 경우 예정된 유지보수 이벤트를 모니터링할 수 있습니다.
- GPU 또는 TPU가 연결된 머신 유형의 경우 1.31.1-gke.2008000 이상
- SSD가 18TiB를 초과하는 Z3 머신 유형의 경우 1.32.4-gke.1376000 이상
- H4D 머신 유형의 경우 1.32.6-gke.1060000 이상
c4a-highmem-96-metal의 경우 1.35.0-gke.2232000 이상
예정된 유지보수 이벤트를 보려면 다음 중 하나를 수행하면 됩니다.
노드 수준에서 알림을 쿼리합니다. 이렇게 하려면 다음 명령어를 실행하세요.
kubectl get nodes -l cloud.google.com/scheduled-maintenance-time \ -L cloud.google.com/scheduled-maintenance-time출력은 다음과 비슷합니다.
NAME STATUS SCHEDULED-MAINTENANCE-TIME <gke-accelerator-node-name> Ready 1733083200 <gke-accelerator-node-name> Ready 1733083200 [...]SCHEDULED-MAINTENANCE-TIME열은 초를 나타내며 유닉스 시간 형식으로 표시됩니다.유지보수 이벤트 알림을 위해 인스턴스를 확인하여 노드 메타데이터 수준에서 이러한 알림을 쿼리합니다.
호스트 유지보수를 위한 Kubernetes 이벤트 보기
GKE 버전 1.35 이상에서는 호스트 유지보수 수명 주기를 추적하는 Kubernetes 이벤트가 내보내집니다. 이러한 Kubernetes 이벤트는 예약된 Compute Engine 기간, 진행 중인 작업, 수리 또는 취소와 같은 특수한 사례에 대한 세부적인 가시성을 제공하므로 Kubernetes 환경 내에서 직접 중단을 모니터링할 수 있습니다.
표준 Kubernetes 도구 또는 Cloud Logging을 통해 이러한 이벤트를 볼 수 있습니다.
최근 유지보수 이벤트를 보려면 다음
kubectl명령어를 사용하세요.kubectl get events -n kube-system --field-selector involvedObject.kind=NodeKubernetes 이벤트는 클러스터에 60분 동안 보관되므로 이 명령어는 노드당 이러한 최근 이벤트만 출력합니다.
Cloud Logging에서 이벤트를 보려면 다음을 수행합니다.
콘솔의 로그 탐색기 페이지로 이동합니다. Cloud de Confiance
다음 쿼리를 사용하세요.
resource.type="k8s_node" log_id("events") jsonPayload.metadata.annotations."maintenance.gke.io/category"="HostMaintenance"
유지보수 수명 주기 이벤트
유지보수 수명 주기 이벤트는 Kubernetes 노드 리소스에서 내보내집니다. 다음 표에서는 Compute Engine 호스트 유지보수 수명 주기 동안 GKE에서 내보낸 이벤트를 설명합니다.
| 이유 | 설명 |
|---|---|
MaintenanceWindowScheduled |
노드에 Compute Engine 호스트 유지보수 기간이 예약되었습니다. |
MaintenanceWindowCancelled |
노드에서 Compute Engine 호스트 유지보수 기간이 삭제되었습니다. |
MaintenanceWindowRescheduled |
이전에 예약된 Compute Engine 호스트 유지보수 기간이 이동되었고 유지보수 시작 시간이 업데이트되었습니다. |
CustomerTriggeredMaintenance |
Compute Engine 호스트 유지보수가 GKE를 통해 수동으로 트리거되었습니다. |
MaintenanceWindowStarted |
Compute Engine 호스트 유지보수가 시작되었습니다. |
TerminateOnHostMaintenance |
Compute Engine에서 종료 신호 (TERMINATE_ON_HOST_MAINTENANCE)를 발행할 때 내보내집니다. 정상 종료가 사용 설정된 경우 GKE는 노드를 코돈하고 포드 퇴거 (SIGTERM)를 예약합니다. 워크로드는 머신 등급에 따라 5~60분 알림 상한을 받습니다. |
PodEvictionComplete |
모든 포드가 노드에서 성공적으로 퇴거되었습니다. |
MaintenanceWindowCleared |
Compute Engine 호스트 유지보수가 완료되었고 노드가 준비 상태로 돌아왔습니다. |
이벤트 페이로드 정보
Compute Engine을 통해 예정된 유지보수 이벤트에 대한 정보를 사용할 수 있는 경우 각 이벤트에는 다음 정보가 포함된 주석 데이터가 포함된 페이로드도 포함됩니다.
- Compute Engine 기간 세부정보:
windowStartTime,windowEndTime,latestWindowStartTime을 포함합니다. - 유지보수 메타데이터: 이벤트 발생 시 유지보수 주기의 상태, 유지보수 이유 (이유는
SCHEDULED또는UNSCHEDULED로 나열될 수 있음), Compute Engine 기간을 재예약할 수 있는지 여부입니다. - Kubernetes 메타데이터: Cluster_name, nodepool_name, node_name을 포함합니다.
GKE 유지보수 대시보드의 호스트 유지보수 작업 보기
GKE 유지보수 대시보드 는 호스트 유지보수 작업의 통합 뷰를 제공합니다. 대시보드는 클러스터, 노드 풀, 노드 수준에서 유지보수 활동에 대한 포괄적인 가시성을 제공합니다.
대시보드는 모니터링 가능성 분석을 기반으로 빌드됩니다. 유지보수 주기, 노드 상태, 이전 다운타임 측정항목을 표시합니다.
다음 단계
- 호스트 유지보수 중에 노드 중단을 관리하는 방법을 알아봅니다.
- 가속기 워크로드를 실행하는 노드에 대해 호스트 유지보수를 수행하는 방법을 알아봅니다.
- GKE 유지보수 기간 및 유지보수 제외에 대해 알아봅니다.