6.2. 자동 워크로드 업데이트 구성
6.2.1. 워크로드 업데이트 정보
libvirt
,virt-launcher
, qemu
를 포함한 OpenShift Virtualization, 가상 머신 워크로드를 업데이트하면 실시간 마이그레이션을 지원하는 경우 자동으로 업데이트됩니다.
각 가상 머신에는 VMI(가상 머신 인스턴스)를 실행하는 virt-launcher
Pod가 있습니다. virt-launcher
Pod는 libvirt
인스턴스를 실행합니다. 이 인스턴스는 VM(가상 머신) 프로세스를 관리하는 데 사용됩니다.
HyperConverged CR
(사용자 정의 리소스)의 spec.workloadUpdateStrategy
스탠자를 편집하여 워크로드가 업데이트되는 방법을 구성할 수 있습니다. 사용 가능한 워크로드 업데이트 방법에는 LiveMigrate
및 Evict
의 두 가지 방법이 있습니다.
Evict
메서드는 VMI Pod를 종료하므로 기본적으로 LiveMigrate
업데이트 전략만 활성화됩니다.
LiveMigrate
가 유일한 업데이트 전략이 활성화된 경우:
- 실시간 마이그레이션을 지원하는 VMI는 업데이트 프로세스 중에 마이그레이션됩니다. VM 게스트는 업데이트된 구성 요소가 활성화된 새 Pod로 이동합니다.
실시간 마이그레이션을 지원하지 않는 VMI는 중단되거나 업데이트되지 않습니다.
-
VMI에
LiveMigrate
제거 전략이 있지만 실시간 마이그레이션을 지원하지 않는 경우 업데이트되지 않습니다.
-
VMI에
LiveMigrate
및 Evict
를 모두 활성화하는 경우 다음을 수행합니다.
-
실시간 마이그레이션을 지원하는 VMI는
LiveMigrate
업데이트 전략을 사용합니다. -
실시간 마이그레이션을 지원하지 않는 VMI는
Evict
update 전략을 사용합니다.항상
runStrategy
값이 있는VirtualMachine
오브젝트로 VMI를 제어하는 경우 업데이트된 구성 요소가 있는 새 Pod에 새 VMI가 생성됩니다.
마이그레이션 시도 및 타임아웃
워크로드를 업데이트할 때 다음 기간 동안 Pod가 Pending
상태인 경우 실시간 마이그레이션이 실패합니다.
- 5분
-
Pod가
예약 불가
때문에 보류 중인 경우 - 15분
- Pod가 어떤 이유로 보류 중 상태인 경우.
VMI가 마이그레이션에 실패하면 virt-controller
에서 다시 마이그레이션을 시도합니다. 모든 migratable VMI가 새 virt-launcher
Pod에서 실행될 때까지 이 프로세스를 반복합니다. 그러나 VMI가 부적절하게 구성된 경우 이러한 시도를 무기한 반복할 수 있습니다.
각 시도는 마이그레이션 오브젝트에 해당합니다. 가장 최근의 5개의 시도만 버퍼에 저장됩니다. 이렇게 하면 디버깅 정보를 유지하면서 마이그레이션 오브젝트가 시스템에 누적되지 않습니다.
6.2.2. 워크로드 업데이트 방법 구성
HyperConverged
CR(사용자 정의 리소스)을 편집하여 워크로드 업데이트 방법을 구성할 수 있습니다.
사전 요구 사항
실시간 마이그레이션을 업데이트 방법으로 사용하려면 먼저 클러스터에서 실시간 마이그레이션을 활성화해야 합니다.
참고VirtualMachineInstance
CR에evictionStrategy: LiveMigrate
가 포함되어 있고 VMI(가상 머신 인스턴스)가 실시간 마이그레이션을 지원하지 않는 경우 VMI는 업데이트되지 않습니다.
절차
기본 편집기에서
HyperConverged
CR을 열려면 다음 명령을 실행합니다.$ oc edit hco -n openshift-cnv kubevirt-hyperconverged
HyperConverged
CR의workloadUpdateStrategy
스탠자를 편집합니다. 예를 들어 다음과 같습니다.apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged spec: workloadUpdateStrategy: workloadUpdateMethods: 1 - LiveMigrate 2 - Evict 3 batchEvictionSize: 10 4 batchEvictionInterval: "1m0s" 5 ...
- 1
- 자동화된 워크로드 업데이트를 수행하는 데 사용할 수 있는 방법입니다. 사용 가능한 값은
LiveMigrate
및Evict
입니다. 이 예에 표시된 대로 두 옵션을 모두 활성화하면 업데이트에서 실시간 마이그레이션을 지원하지 않는 VMI에 실시간 마이그레이션 및Evict
를 지원하는 VMI에LiveMigrate
를 사용합니다. 자동 워크로드 업데이트를 비활성화하려면workloadUpdateStrategy
스탠자를 제거하거나workloadUpdateMethods: []
를 설정하여 배열을 비워 둘 수 있습니다. - 2
- 중단이 적은 업데이트 방법입니다. VMI(가상 머신) 게스트를 업데이트된 구성 요소가 활성화된 새 Pod로 마이그레이션하여 실시간 마이그레이션을 지원하는 VMI가 업데이트됩니다.
LiveMigrate
가 나열된 유일한 워크로드 업데이트 방법인 경우 실시간 마이그레이션을 지원하지 않는 VMI는 중단되거나 업데이트되지 않습니다. - 3
- 업그레이드 중 VMI Pod를 종료하는 중단 방법입니다.
Evict
는 클러스터에서 실시간 마이그레이션이 활성화되지 않은 경우 사용 가능한 유일한 업데이트 방법입니다.runStrategy: always
구성된VirtualMachine
오브젝트에서 VMI를 제어하는 경우 업데이트된 구성 요소가 있는 새 VMI가 새 Pod에 생성됩니다. - 4
Evict
방법을 사용하여 한 번에 업데이트할 수 있는 VMI 수입니다. 이는LiveMigrate
방법에는 적용되지 않습니다.- 5
- 다음 워크로드 배치를 제거하기 전에 대기하는 간격입니다. 이는
LiveMigrate
방법에는 적용되지 않습니다.
참고HyperConverged
CR의spec.liveMigrationConfig
스탠자를 편집하여 실시간 마이그레이션 제한 및 타임아웃을 구성할 수 있습니다.- 변경 사항을 적용하려면 편집기를 저장하고 종료합니다.