https://kubevirt.io/labs/kubernetes/lab2.html
https://chaaaaewoncode.tistory.com/67
https://github.com/Tedezed/kubevirt-images-generator?tab=readme-ov-file
https://kubevirt.io/user-guide/storage/export_api/#export-api
4Gi 크기의 DataVolume을 생성하고 해당 볼륨을 VM에 마운트 시켜주자.
kubectl apply -n shelley -f - <<EOF
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: test-vm
spec:
dataVolumeTemplates:
- metadata:
creationTimestamp: null
**name: example-dv**
spec:
storage:
accessModes:
- ReadWriteOnce
resources:
requests:
**storage: 4Gi**
source:
registry:
url: docker://quay.io/containerdisks/ubuntu:22.04
running: true
template:
spec:
domain:
devices:
disks:
- disk:
bus: virtio
name: rootdisk
- disk:
bus: virtio
name: initdisk
resources:
requests:
memory: 4Gi
terminationGracePeriodSeconds: 0
volumes:
- name: rootdisk
dataVolume:
**name: example-dv**
- name: initdisk
cloudInitNoCloud:
userData: |
#cloud-config
password: ubuntu
chpasswd: { expire: False }
EOF
VM에 접속(id: ubuntu, pw: ubuntu)
virtctl console test-vm -n shelley
test용 text파일 하나를 만들어준다. (추후 VM을 복제했을 때 이 파일이 그대로 복제됐는지 체크하기 위함)
echo "hello" > hello.txt
Kubevirt CR에 LiveMigration을 추가해주면 feature gate가 활성화된다.
kubectl apply -n kubevirt -f - <<EOF
apiVersion: kubevirt.io/v1
kind: KubeVirt
metadata:
name: kubevirt
namespace: kubevirt
spec:
configuration:
developerConfiguration:
featureGates:
- VMExport
EOF
혹은 이미 존재하는 kubevirt를 edit하고 LiveMigration를 추가한 후 저장한다.
kubectl edit kubevirt kubevirt -n kubevirt
...
spec:
configuration:
developerConfiguration:
featureGates:
...
- VMExport