이 문서에서는 명령줄과 GKE 유지보수 대시보드를 사용하여 호스트 유지보수 작업을 보는 방법을 설명합니다.
호스트 유지보수 작업을 확인하면 워크로드 중단을 완화하는 데 도움이 될 수 있습니다. 특히 주기적인 인프라 중단으로 인해 워크로드가 중단될 수 있는 장기 실행 GKE 클러스터의 경우에 유용합니다.
GKE의 호스트 유지보수에 대한 자세한 내용은 GKE에서 호스트 유지보수를 수행하는 방법 이해를 참조하세요.
유지보수 알림 모니터링
VM에 예약된 유지보수 이벤트가 있기 전에 Compute Engine은 모든 VM에 알림을 푸시합니다. 이러한 알림은 Compute Engine 유지보수 기간의 시작을 알립니다. VM에서 예정된 유지보수가 예약되었지만 활성 상태가 아니면 GKE는 노드 라벨에 scheduled-maintenance-time을 추가합니다.
예정된 유지보수 이벤트를 모니터링하고 감지하려면 GKE 및 Compute Engine의 알림을 모두 확인해야 합니다.
Compute Engine에서 예정된 유지보수 보기
Compute Engine은 노드 및 기본 VM에 중단이 발생하는 호스트 이벤트가 예약될 때와 이러한 이벤트가 활성화될 때 알림을 전송합니다. 알림에는 계획된 시작 시간, 이벤트 유형, 기타 세부정보가 포함됩니다.
GKE에서 예정된 유지보수 보기
특정 머신 유형에 대해 GKE에서 예정된 유지보수 이벤트를 모니터링할 수 있습니다. 다음 표에는 지원되는 머신 유형과 각 머신 유형에 필요한 최소 GKE 버전이 나와 있습니다.
| 머신 유형 | 최소 GKE 버전 |
|---|---|
| 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가 42TiB를 초과하는 Z4D 머신 유형 | 1.36.3-gke.1244000 이상 |
| 48TiB 이상의 티타늄 SSD가 연결된 Z4M 머신 유형 또는 Cloud RDMA를 사용하는 Z4M 인스턴스 | 1.36.3-gke.1767000 이상 |
예정된 유지보수 이벤트를 보려면 다음 중 하나를 수행하면 됩니다.
노드 수준에서 알림을 쿼리합니다. 이렇게 하려면 다음 명령어를 실행하세요.
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 |
GKE를 통해 Compute Engine 호스트 유지보수가 수동으로 트리거됨 |
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 유지보수 대시보드는 호스트 유지보수 작업의 통합 뷰를 제공합니다. 대시보드는 클러스터, 노드 풀, 노드 수준 전반에서 유지보수 활동을 포괄적으로 보여줍니다.
대시보드는 Observability Analytics를 기반으로 빌드됩니다. 유지보수 주기, 노드 상태, 이전 다운타임 측정항목이 표시됩니다.
다음 단계
- 호스트 유지보수 중 노드 중단을 관리하는 방법 알아보기
- 가속기 워크로드를 실행하는 노드의 호스트 유지보수를 수행하는 방법 알아보기
- GKE 유지보수 기간 및 제외 알아보기