이 문서는 Google Distributed Cloud에서 가상 머신(VM)을 실행하는 플랫폼 관리자를 대상으로 합니다. 이 문서에서는 GDC용 VM 런타임을 사용하는 VM에서 유지보수 이벤트 중에 다른 호스트로 자동 마이그레이션하는 방법을 제어하는 제거 정책을 구성하는 방법을 보여줍니다. 클러스터를 업그레이드하거나 호스트에서 유지보수를 수행할 때 이러한 구성 설정을 통해 VM이 다른 호스트에서 계속 실행될 수 있습니다.
시작하기 전에
이 문서를 완료하려면 Google Distributed Cloud 버전 1.12.0(anthosBareMetalVersion: 1.12.0) 이상의 클러스터에 액세스할 수 있어야 합니다. 워크로드 실행이 가능한 모든 클러스터 유형을 사용할 수 있습니다. 필요한 경우 Compute Engine에서 Google Distributed Cloud를 사용하거나 클러스터 만들기 개요를 참조하세요.
제거 정책 설정
Google Distributed Cloud를 사용하면 클러스터 업그레이드를 수행하거나 노드를 유지보수 모드로 설정할 때 노드 동작을 구성할 수 있습니다. GDC용 VM 런타임은 클러스터에서 이러한 이벤트 중에 실행되는 VM을 처리하는 방법을 제어하는 제거 정책을 사용합니다.
사용 설정된 경우 GDC용 VM 런타임은 라이브 마이그레이션을 사용하여 기본적으로 VM 워크로드를 다른 호스트로 이동합니다. 이 동작은 VM 워크로드에 대한 중단 가능성을 최소화합니다. 라이브 마이그레이션을 사용하면 게스트 OS에 대한 중단 없이 마이그레이션 가능한 VM이 한 호스트에서 다른 호스트로 이동됩니다.
구성할 수 있는 제거 정책 설정은 다음과 같습니다.
| 속성 | 기본값 | 유효한 값 | 
|---|---|---|
| evictionStrategy | LiveMigrate | LiveMigrate,Restart | 
| maxMigrationAttemptsPerVM | 3 | [ 1,5] 범위 정수 | 
| migrationTargetInitializationTimeout | 30s | 모든 유효한 기간 문자열(예: 1m,2h,1h30m) | 
evictionStrategy
이 값이 LiveMigrate로 설정되면 GDC용 VM 런타임은 마이그레이션할 수 있는 VM을 한 노드에서 외부로 마이그레이션하여 제거하려고 시도합니다. VM은 클러스터의 다른 노드에 배치되고 계속 실행됩니다.
이 값이 Restart로 설정되면 GDC용 VM 런타임은 VM을 마이그레이션하려고 시도하지 않습니다. 대신 노드가 유지보수 모드로 설정될 때 VM이 중지되고, 노드의 유지보수 모드가 종료되면 VM이 다시 시작됩니다.
호스트 유지보수 이벤트 중에는 VM을 사용할 수 없습니다.
LiveMigrate 전략을 선택하면 GDC용 VM 런타임이 마이그레이션할 수 없는 VM에 대해 Restart 전략으로 대체됩니다.
maxMigrationAttemptsPerVM
이 설정은 Restart 전략이 적용되기 전 특정 VM에 대해 발생할 수 있는 최대 마이그레이션 시도 수를 제어합니다.
evictionStrategy가 Restart로 설정되었으면 이 설정이 무시됩니다.
migrationTargetInitializationTimeout
이 설정은 마이그레이션이 실패로 간주되기 전 마이그레이션을 시작하는 데 걸리는 최대 시간을 제어합니다. 시작하는 데 너무 오래 걸리는 마이그레이션은 VM 워크로드의 실패한 마이그레이션 예산으로 계산됩니다.
evictionStrategy가 Restart로 설정되었으면 이 설정이 무시됩니다.
제거 정책 사용 설정 및 구성
GDC용 VM 런타임에서 제거 정책을 사용하려면 evictionPolicy 설정을 클러스터의 VMRuntime 객체에서 정의해야 합니다.
이 설정은 기본적으로 사용 설정되어 있습니다. 이전 버전에서 업그레이드할 경우에는 이 설정을 수동으로 사용 설정해야 합니다.
evictionPolicy: {}와 같은 빈 객체는 기본 설정을 사용하여 제거 정책을 사용 설정합니다. 기본 동작을 변경하려면 evictionPolicy 객체에 추가 구성 옵션을 추가합니다.
제거 정책을 사용 설정하고 구성하려면 다음 단계를 수행합니다.
- VMRuntime커스텀 리소스를 수정합니다.- kubectl edit vmruntime vmruntime
- 기본 제거 정책 설정을 사용하려면 빈 객체를 사용해서 - evictionPolicy섹션을 추가 또는 업데이트하고, 아니면 원하는 설정을 추가합니다.- apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: disableCDIUploadProxyVIP: false enabled: true evictionPolicy: {} useEmulation: false- evictionPolicy: null과 같이- evictionPolicy가 채워지지 않았거나 매니페스트에 포함되지 않았으면 특별한 작업이 수행되지 않습니다. VM이 강제로 제거됩니다.- 다음 매니페스트 예시는 VM의 라이브 마이그레이션을 사용 설정하거나 유지보수가 완료된 후 동일한 호스트에서 VM을 다시 시작하는 방법을 보여줍니다. - 라이브 마이그레이션- 다음 제거 정책 예시는 VM의 라이브 마이그레이션을 사용 설정합니다. 클러스터가 프로세스를 시작할 때마다 30초 제한 시간을 사용해서 최대 3회까지 라이브 마이그레이션을 재시도할 수 있습니다. - apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: disableCDIUploadProxyVIP: false enabled: true evictionPolicy: evictionStrategy: LiveMigrate maxMigrationAttemptsPerVM: 3 migrationTargetInitializationTimeout: 30s useEmulation: false- 다시 시작- 다음 제거 정책 예시는 제거 중 VM에 대해 마이그레이션을 시도하지 않습니다. VM이 현재 호스트에서 중지되고 호스트가 유지보수 이벤트를 마칠 때 다시 시작됩니다. - apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: disableCDIUploadProxyVIP: false enabled: true evictionPolicy: evictionStrategy: Restart useEmulation: false
- 편집기에서 - VMRuntime커스텀 리소스를 저장하고 닫습니다.- 이제 GDC용 VM 런타임이 제거 정책을 클러스터의 VM에 적용합니다.