이 문서는 베어메탈용 GKE에서 가상 머신(VM)을 실행하는 플랫폼 관리자를 대상으로 합니다. 이 문서에서는 Google Distributed Cloud용 VM 런타임을 사용하는 VM에서 유지보수 이벤트 중에 다른 호스트로 자동 마이그레이션하는 방법을 제어하는 제거 정책을 구성하는 방법을 보여줍니다. 클러스터를 업그레이드하거나 호스트에서 유지보수를 수행할 때 이러한 구성 설정을 통해 VM이 다른 호스트에서 계속 실행될 수 있습니다.
시작하기 전에
이 문서를 완료하려면 베어메탈용 GKE 버전 1.12.0(anthosBareMetalVersion: 1.12.0
) 이상 클러스터에 액세스할 수 있어야 합니다. 워크로드 실행이 가능한 모든 클러스터 유형을 사용할 수 있습니다. 필요한 경우 Compute Engine에서 베어메탈용 GKE를 사용해 보거나 클러스터 만들기 개요를 참조하세요.
제거 정책 설정
베어메탈용 GKE를 사용하면 클러스터 업그레이드를 수행하거나 노드를 유지보수 모드로 설정할 때 노드 동작을 구성할 수 있습니다. Google Distributed Cloud용 VM 런타임은 클러스터에서 이러한 이벤트 중에 실행되는 VM을 처리하는 방법을 제어하는 제거 정책을 사용합니다.
사용 설정된 경우 Google Distributed Cloud용 VM 런타임은 라이브 마이그레이션을 사용하여 기본적으로 VM 워크로드를 다른 호스트로 이동합니다. 이 동작은 VM 워크로드에 대한 중단 가능성을 최소화합니다. 라이브 마이그레이션을 사용하면 게스트 OS에 대한 중단 없이 마이그레이션 가능한 VM이 한 호스트에서 다른 호스트로 이동됩니다.
구성할 수 있는 제거 정책 설정은 다음과 같습니다.
속성 | 기본값 | 유효한 값 |
---|---|---|
evictionStrategy |
LiveMigrate |
LiveMigrate , Restart |
maxMigrationAttemptsPerVM |
3 |
[1 ,5 ] 범위 정수 |
migrationTargetInitializationTimeout |
30s |
모든 유효한 기간 문자열(예: 1m , 2h , 1h30m ) |
evictionStrategy
이 값이 LiveMigrate
로 설정되면 Google Distributed Cloud용 VM 런타임은 마이그레이션할 수 있는 VM을 한 노드에서 외부로 마이그레이션하여 제거하려고 시도합니다. VM은 클러스터의 다른 노드에 배치되고 계속 실행됩니다.
이 값이 Restart
로 설정되면 Google Distributed Cloud용 VM 런타임은 VM을 마이그레이션하려고 시도하지 않습니다. 대신 노드가 유지보수 모드로 설정될 때 VM이 중지되고, 노드의 유지보수 모드가 종료되면 VM이 다시 시작됩니다.
호스트 유지보수 이벤트 중에는 VM을 사용할 수 없습니다.
LiveMigrate
전략을 선택하면 Google Distributed Cloud용 VM 런타임은 마이그레이션할 수 없는 VM에 대한 Restart
전략으로 대체됩니다.
maxMigrationAttemptsPerVM
이 설정은 Restart
전략이 적용되기 전 특정 VM에 대해 발생할 수 있는 최대 마이그레이션 시도 수를 제어합니다.
evictionStrategy
가 Restart
로 설정되었으면 이 설정이 무시됩니다.
migrationTargetInitializationTimeout
이 설정은 마이그레이션이 실패로 간주되기 전 마이그레이션을 시작하는 데 걸리는 최대 시간을 제어합니다. 시작하는 데 너무 오래 걸리는 마이그레이션은 VM 워크로드의 실패한 마이그레이션 예산으로 계산됩니다.
evictionStrategy
가 Restart
로 설정되었으면 이 설정이 무시됩니다.
제거 정책 사용 설정 및 구성
Google Distributed Cloud용 VM 런타임에서 제거 정책을 사용하려면 클러스터의 VMRuntime
객체에서 evictionPolicy
설정을 정의해야 합니다. 이 설정은 베어메탈용 Anthos 클러스터 버전 1.12 이상에서 기본적으로 사용 설정됩니다. 이전 버전에서 업그레이드할 경우에는 이 설정을 수동으로 사용 설정해야 합니다.
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
커스텀 리소스를 저장하고 닫습니다.이제 Google Distributed Cloud용 VM 런타임에서 제거 정책을 클러스터의 VM에 적용합니다.