10.5. 가상 머신 내보내기
VM(가상 머신) 및 관련 디스크를 내보내 VM을 다른 클러스터로 가져오거나 법의학 목적으로 볼륨을 분석할 수 있습니다.
명령줄 인터페이스를 사용하여 VirtualMachineExport
CR(사용자 정의 리소스)을 생성합니다.
또는 virtctl vmexport
명령을 사용하여 VirtualMachineExport
CR을 생성하고 내보낸 볼륨을 다운로드할 수 있습니다.
10.5.1. VirtualMachineExport 사용자 정의 리소스 생성
VirtualMachineExport
사용자 정의 리소스(CR)를 생성하여 다음 오브젝트를 내보낼 수 있습니다.
- VM(가상 머신): 지정된 VM의 PVC(영구 볼륨 클레임)를 내보냅니다.
-
VM 스냅샷:
VirtualMachineSnapshot
CR에 포함된 PVC를 내보냅니다. -
PVC: PVC를 내보냅니다.
virt-launcher
Pod와 같은 다른 Pod에서 PVC를 사용하는 경우 PVC가 더 이상 사용되지 않을 때까지 내보내기가Pending
상태로 유지됩니다.
VirtualMachineExport
CR은 내보낸 볼륨에 대한 내부 및 외부 링크를 생성합니다. 내부 링크는 클러스터 내에서 유효합니다. 외부 링크는 Ingress
또는 경로를 사용하여 액세스할 수 있습니다
.
내보내기 서버는 다음 파일 형식을 지원합니다.
-
Raw :
원시
디스크 이미지 파일. -
gzip
: 압축 디스크 이미지 파일 -
dir
: PVC 디렉토리 및 파일 -
tar.gz
: 압축된 PVC 파일
사전 요구 사항
- VM 내보내기에 대해 VM을 종료해야 합니다.
절차
다음 예에 따라 VirtualMachine ,
VirtualMachine
SnapshotPersistentVolumeClaim
CR에서 볼륨을 내보내고example-export.yaml
로 저장할VirtualMachineExport
매니페스트를 생성합니다.VirtualMachineExport
예apiVersion: export.kubevirt.io/v1alpha1 kind: VirtualMachineExport metadata: name: example-export spec: source: apiGroup: "kubevirt.io" 1 kind: VirtualMachine 2 name: example-vm ttlDuration: 1h 3
VirtualMachineExport
CR을 생성합니다.$ oc create -f example-export.yaml
VirtualMachineExport
CR을 가져옵니다.$ oc get vmexport example-export -o yaml
내보낸 볼륨의 내부 및 외부 링크는
상태
스탠자에 표시됩니다.출력 예
apiVersion: export.kubevirt.io/v1alpha1 kind: VirtualMachineExport metadata: name: example-export namespace: example spec: source: apiGroup: "" kind: PersistentVolumeClaim name: example-pvc tokenSecretRef: example-token status: conditions: - lastProbeTime: null lastTransitionTime: "2022-06-21T14:10:09Z" reason: podReady status: "True" type: Ready - lastProbeTime: null lastTransitionTime: "2022-06-21T14:09:02Z" reason: pvcBound status: "True" type: PVCReady links: external: 1 cert: |- -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- volumes: - formats: - format: raw url: https://vmexport-proxy.test.net/api/export.kubevirt.io/v1alpha1/namespaces/example/virtualmachineexports/example-export/volumes/example-disk/disk.img - format: gzip url: https://vmexport-proxy.test.net/api/export.kubevirt.io/v1alpha1/namespaces/example/virtualmachineexports/example-export/volumes/example-disk/disk.img.gz name: example-disk internal: 2 cert: |- -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- volumes: - formats: - format: raw url: https://virt-export-example-export.example.svc/volumes/example-disk/disk.img - format: gzip url: https://virt-export-example-export.example.svc/volumes/example-disk/disk.img.gz name: example-disk phase: Ready serviceName: virt-export-example-export