유지보수 이벤트 모니터링

이 문서에서는 명령줄과 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을 통해 이러한 이벤트를 볼 수 있습니다.

  1. 최근 유지보수 이벤트를 보려면 다음 kubectl 명령어를 사용하세요.

    kubectl get events -n kube-system --field-selector involvedObject.kind=Node
    

    Kubernetes 이벤트는 클러스터에 60분 동안 보관되므로 이 명령어는 노드당 최근 이벤트만 출력합니다.

  2. Cloud Logging에서 이벤트를 보려면 다음을 수행하세요.

    1. Cloud de Confiance 콘솔의 로그 탐색기로 이동합니다.

      로그 탐색기로 이동

    2. 다음 쿼리를 사용하세요.

    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 유지보수 대시보드는 호스트 유지보수 작업을 통합적으로 보여줍니다. 대시보드에서는 클러스터, 노드 풀, 노드 수준에서 유지보수 활동을 포괄적으로 파악할 수 있습니다.

대시보드는 모니터링 가능성 분석을 기반으로 빌드됩니다. 유지보수 주기, 노드 상태, 이전 다운타임 측정항목을 표시합니다.

다음 단계