CDI提供了使用PVC作为虚拟机磁盘的方案,在虚拟机启动前通过下面方式填充PVC:
- 通过URL导入虚拟机镜像到PVC,URL可以是http链接,s3链接
- Clone一个已经存在的PVC
- 通过container registry 导入虚拟机磁盘到PVC,需要结合ContainerDisk使用
- 通过客户端上传本地镜像到PVC
通过virtctl,结合CDI可以上传本地镜像到pvc上,支持的镜像格式有:
- .img
- .qcow2
- .iso
2.创建虚拟机:上传虚拟机镜像到服务器:
查看cdi-uoloadproxy的service ip :
# kubectl -n cdi get svc -l cdi.kubevirt.io=cdi-uploadproxy
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
cdi-uploadproxy ClusterIP 172.10.212.21443/TCP 3d1h
查看sc名称(上篇文章创建的):# kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
rook-ceph-block rook-ceph.rbd.csi.ceph.com Delete Immediate true 2d7h
将windows镜像上传到PVC:# virtctl image-upload --uploadproxy-url=https://172.10.212.21 --pvc-name=iso-win10 --pvc-size=10Gi --insecure --storage-class=rook-ceph-block --access-mode=ReadWriteMany --block-volume --image-path=./cn_windows_10_business_editions_version_1909_updated_jan_2020_x64.iso
PVC default/iso-win10 not found
PersistentVolumeClaim default/iso-win10 created
Waiting for PVC iso-win10 upload pod to be ready...
Pod now ready
Uploading data to https://172.10.212.214.95 GiB / 4.95 GiB [==========================================================================================================================================================================================================================] 100.00% 25s
Uploading data completed successfully, waiting for processing to complete, you can hit ctrl-c without interrupting the progress
Processing completed successfully
Uploading ./cn_windows_10_business_editions_version_1909_updated_jan_2020_x64.iso completed successfully参数解释:
- --image-path:操作系统镜像地址。
- --pvc-name:指定存储操作系统镜像的pvc,pvc动态创建。
- --pvc-size:pvc大小,根据操作系统镜像大小来设定,一般比上传操作略大就行。
- --uploadproxy-url:cdi-uploadproxy的service Ip。
查看pvc:



