호스트 유지보수 이벤트 시뮬레이션


이 페이지에서는 가상 머신(VM) 인스턴스의 호스트 유지보수 정책이 애플리케이션에 미치는 영향을 테스트하는 방법을 설명합니다.

다음과 같은 경우에 VM에서 유지보수 이벤트를 시뮬레이션할 수 있습니다.

  • 유지보수 이벤트 중에 라이브 마이그레이션하도록 구성된 인스턴스가 있으며 라이브 마이그레이션이 애플리케이션에 미치는 영향을 테스트해야 합니다.
  • 선점형 VM 인스턴스에서 실행 중인 일괄 작업이 있으며 애플리케이션이 인스턴스 한 개 이상의 선점 및 종료를 처리하는 방식을 테스트해야 합니다.
  • 인스턴스가 유지보수 이벤트 중에 라이브 마이그레이션하지 않고 중지 및 다시 시작하도록 구성되어 있으며 애플리케이션이 이 종료 및 다시 시작 프로세스를 처리하는 방식을 테스트해야 합니다.
  • 단독 테넌트 노드에서 실행되는 워크로드가 호스트 유지보수 이벤트 중에 어떻게 작동하는지 테스트하고, VM에서 실행되는 애플리케이션에 대한 단독 테넌트 VM의 호스트 유지보수 정책으로 인한 영향을 확인하려고 합니다.

시작하기 전에

  • simulate_maintenance_event_requests 측정항목의 API 비율 제한을 검토합니다.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스할 때는 인증을 설정할 필요가 없습니다.

    gcloud

    1. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

    REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init

제한사항

  • 라이브 마이그레이션을 지원하지 않는 VM에서 호스트 유지보수 이벤트를 시뮬레이션하려고 하면 구성된 호스트 유지보수 정책에 따라 종료되거나 다시 시작됩니다.

  • 호스트 유지보수 정책이 노드 그룹 내 마이그레이션으로 설정된 노드 그룹에서 호스트 유지보수 이벤트를 시뮬레이션하려고 할 때 지정된 노드 수가 예약된 총 보류 노드 수보다 작거나 같으면 호스트 유지보수 이벤트 시뮬레이션이 지정된 모든 노드에서 동시에 실행됩니다. 반면에 지정된 노드 수가 예약된 총 보류 노드 수보다 크면 시뮬레이션이 실패합니다.

  • 노드 그룹 내에서 마이그레이션하도록 호스트 유지보수 정책이 설정된 노드 그룹에서 유지보수 이벤트를 올바르게 시뮬레이션하려면 각 노드에서 유지보수 이벤트를 순차적으로 트리거해야 합니다.

호스트 유지보수 이벤트 시뮬레이션

Google Cloud CLI 또는 API 요청을 사용하여 VM에서 유지보수 이벤트를 시뮬레이션할 수 있습니다.

호스트 유지보수 이벤트를 시뮬레이션하는 동안 VM의 maintenance-event 메타데이터 키에 다음 변경사항이 적용됩니다.

  1. 시뮬레이션이 시작되면 maintenance-event 메타데이터 키의 값이 NONE에서 MIGRATE_ON_HOST_MAINTENANCE로 변경됩니다.
  2. 시뮬레이션 이벤트 기간 동안 값은 MIGRATE_ON_HOST_MAINTENANCE로 유지됩니다.
  3. 시뮬레이션이 종료되면 값은 NONE으로 돌아갑니다.

유지보수 이벤트 키를 쿼리하려면 유지보수 이벤트 메타데이터 키 쿼리를 참조하세요.

gcloud

instances simulate-maintenance-event 명령어를 실행하여 인스턴스에서 구성된 유지보수 정책 작업을 강제 활성화합니다.

gcloud compute instances simulate-maintenance-event VM_NAME \
    --zone ZONE

다음을 바꿉니다.

  • VM_NAME: 유지보수 이벤트를 시뮬레이션할 VM의 이름입니다.

    단일 공백으로 구분된 다수의 VM 이름을 지정하여 동일한 영역에 있는 두 개 이상의 인스턴스에서 유지보수 이벤트를 시뮬레이션할 수 있습니다. 예를 들면 instance-1 instance-2 instance-3입니다.

  • ZONE: 인스턴스가 있는 영역입니다.

REST

Compute Engine API에서 compute.instances.simulateMaintenanceEvent 메서드에 대해 요청을 실행합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/simulateMaintenanceEvent

다음을 바꿉니다.

  • PROJECT_ID: 이 요청의 프로젝트 ID입니다.
  • VM_NAME: 유지보수 이벤트를 시뮬레이션할 인스턴스의 이름입니다.

    단일 공백으로 구분된 다수의 인스턴스 이름을 지정하여 동일한 영역에 있는 두 개 이상의 인스턴스에서 유지보수 이벤트를 시뮬레이션할 수 있습니다. 예를 들면 instance-1 instance-2 instance-3입니다.

  • ZONE: 인스턴스가 있는 영역입니다.

단독 테넌트 노드에서 호스트 유지보수 이벤트 시뮬레이션

Google Cloud CLI 또는 API 요청을 사용하여 단독 테넌트 노드에서 호스트 유지보수 이벤트를 시뮬레이션할 수 있습니다. 단독 테넌트 VM에서 호스트 유지보수 이벤트를 시뮬레이션하는 동안 maintenance-event 메타데이터 키 값은 변경되지 않으며 시뮬레이션 중에도 NONE 상태로 유지됩니다.

gcloud

sole-tenancy node-groups simulate-maintenance-event 명령어를 실행하여 단독 테넌트 노드가 구성된 유지보수 정책을 강제로 활성화하게 합니다.

 gcloud compute sole-tenancy node-groups simulate-maintenance-event NODE_GROUP \
    --nodes=NODE_NAMES \
    --zone=ZONE \
    --async

다음을 바꿉니다.

  • NODE_GROUP: 유지보수 이벤트를 시뮬레이션할 노드 그룹의 이름입니다.

  • NODE_NAMES: 유지보수 이벤트를 시뮬레이션할 노드의 이름입니다. 여러 노드 이름을 지정할 때는 쉼표로 구분된 값을 사용합니다(예: node-1,node-2,node-3).

  • ZONE: 노드가 있는 영역입니다.

REST

Compute Engine API에서 compute.nodeGroups.simulateMaintenanceEvent 메서드에 대해 요청을 실행합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/NODE_GROUP/simulateMaintenanceEvent

{
  "nodes": [NODE_NAMES]
}

다음을 바꿉니다.

  • PROJECT_ID: 이 요청의 프로젝트 ID입니다.

  • ZONE: 노드가 있는 영역입니다.

  • NODE_GROUP: 유지보수 이벤트를 시뮬레이션할 노드 그룹의 이름입니다.

  • NODE_NAMES: 유지보수 이벤트를 시뮬레이션할 노드의 이름입니다. 노드 이름을 큰따옴표로 묶습니다(예: "node-1"). 여러 노드 이름을 지정할 때는 쉼표로 구분된 값을 사용합니다(예: "node-1","node-2","node-3").

다음 단계