Google Distributed Cloud에서 VM의 제거 정책 구성

이 문서는 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에 대해 발생할 수 있는 최대 마이그레이션 시도 수를 제어합니다.

evictionStrategyRestart로 설정되었으면 이 설정이 무시됩니다.

migrationTargetInitializationTimeout

이 설정은 마이그레이션이 실패로 간주되기 전 마이그레이션을 시작하는 데 걸리는 최대 시간을 제어합니다. 시작하는 데 너무 오래 걸리는 마이그레이션은 VM 워크로드의 실패한 마이그레이션 예산으로 계산됩니다.

evictionStrategyRestart로 설정되었으면 이 설정이 무시됩니다.

제거 정책 사용 설정 및 구성

GDC용 VM 런타임에서 제거 정책을 사용하려면 evictionPolicy 설정을 클러스터의 VMRuntime 객체에서 정의해야 합니다. 이 설정은 기본적으로 사용 설정되어 있습니다. 이전 버전에서 업그레이드할 경우에는 이 설정을 수동으로 사용 설정해야 합니다.

evictionPolicy: {}와 같은 빈 객체는 기본 설정을 사용하여 제거 정책을 사용 설정합니다. 기본 동작을 변경하려면 evictionPolicy 객체에 추가 구성 옵션을 추가합니다.

제거 정책을 사용 설정하고 구성하려면 다음 단계를 수행합니다.

  1. VMRuntime 커스텀 리소스를 수정합니다.

    kubectl edit vmruntime vmruntime
    
  2. 기본 제거 정책 설정을 사용하려면 빈 객체를 사용해서 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
    
  3. 편집기에서 VMRuntime 커스텀 리소스를 저장하고 닫습니다.

    이제 GDC용 VM 런타임이 제거 정책을 클러스터의 VM에 적용합니다.

다음 단계