이 문서에서는 명령줄과 GKE 유지관리 대시보드를 사용하여 호스트 유지관리 작업을 보는 방법을 설명합니다.
호스트 유지보수 작업을 확인하면 특히 주기적인 인프라 중단으로 인해 중단될 수 있는 워크로드가 있는 장기 실행 GKE 클러스터의 경우 워크로드 중단을 완화하는 데 도움이 됩니다.
GKE의 호스트 유지보수에 대한 자세한 내용은 GKE에서 호스트 유지보수를 실행하는 방법 이해하기를 참고하세요.
유지보수 알림 모니터링
VM에 예정된 유지보수 이벤트가 발생하기 전에 Compute Engine은 모든 VM에 알림을 푸시합니다. 이러한 알림은 Compute Engine 유지보수 기간의 시작을 보고합니다. VM에서 예정된 유지보수가 예약되었지만 활성 상태가 아니면 GKE는 노드 라벨에 scheduled-maintenance-time을 추가합니다.
예정된 유지보수 이벤트를 모니터링하고 감지하려면 GKE와 Compute Engine의 알림을 모두 확인해야 합니다.
Compute Engine에서 예정된 유지보수 보기
노드와 기본 VM에 중단이 발생하는 호스트 이벤트가 예약된 경우와 이러한 이벤트가 활성화된 경우 Compute Engine에서 알림을 발행합니다. 알림에는 예정된 시작 시간, 이벤트 유형, 기타 세부정보가 포함됩니다.
GKE에서 예정된 유지보수 보기
GKE 버전 1.31.1-gke.2008000 이상 및 특정 머신 유형의 경우 예정된 유지보수 이벤트를 모니터링할 수 있습니다.
- GPU 또는 TPU가 연결된 머신 유형의 경우 1.31.1-gke.2008000 이상
- H4D 머신 유형의 경우 1.32.6-gke.1060000 이상
c4a-highmem-96-metal의 경우 1.35.0-gke.2232000 이상- 티타늄 SSD가 18TiB를 초과하는 Z3 머신 유형의 경우 1.32.4-gke.1376000 이상
- 연결된 티타늄 SSD가 41TiB를 초과하는 Z4D 머신 유형의 경우 1.36.3-gke.1244000 이상
예정된 유지보수 이벤트를 보려면 다음 중 하나를 수행하세요.
노드 수준에서 알림을 쿼리합니다. 이렇게 하려면 다음 명령어를 실행하세요.
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열은 초를 나타내며 유닉스 시간 형식으로 표시됩니다.인스턴스에서 유지보수 이벤트 알림을 확인하여 노드 메타데이터 수준에서 이러한 알림을 쿼리합니다.
고급 유지보수를 지원하는 가속기 최적화 머신 계열의 경우 예약되고 시작된 유지보수 이벤트에 관한 정보를 제공하는
upcoming-maintenance엔드포인트에 액세스할 수 있습니다.
호스트 유지보수를 위한 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 유지보수 기간 및 제외에 대해 알아봅니다.