kubevirt使用ceph创建虚拟机(三)

1.虚拟机镜像操作:

 

CDI提供了使用PVC作为虚拟机磁盘的方案,在虚拟机启动前通过下面方式填充PVC:

  • 通过URL导入虚拟机镜像到PVC,URL可以是http链接,s3链接 
  • Clone一个已经存在的PVC                                                                                                     
  • 通过container registry 导入虚拟机磁盘到PVC,需要结合ContainerDisk使用                           
  • 通过客户端上传本地镜像到PVC

通过virtctl,结合CDI可以上传本地镜像到pvc上,支持的镜像格式有:

  • .img
  • .qcow2
  • .iso

上传虚拟机镜像到服务器:

查看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.21   <none>        443/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.21

 4.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:

2.创建虚拟机:

执行安装文件:

# kubectl apply -f win10.yaml 
persistentvolumeclaim/win10-vm1 created
virtualmachine.kubevirt.io/win10 created

启动vm:

# virtctl start win10

进入安装界面:

# virtctl vnc win10

 正常安装到这一步,如果发现没有硬盘可供使用,需要安装virtio驱动。

 点击加载驱动程序,

 点击确定,

 选择驱动程序

 

 安装完成,这样就能在k8s中使用虚拟机了。

win10.yaml 内容如下:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: win10-vm1
spec:
  accessModes:
    - ReadWriteMany
  volumeMode: Block
  resources:
    requests:
      storage: 100Gi
  storageClassName: rook-ceph-block
---
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachine
metadata:
  name: win10
spec:
  running: false
  template:
    metadata:
      labels:
        kubevirt.io/domain: win10
    spec:
      domain:
        cpu:
          cores: 4
        devices:
          disks:
          - bootOrder: 1
            cdrom:
              bus: sata
            name: cdromiso
          - disk:
              bus: sata
            name: harddrive
          - cdrom:
              bus: sata
            name: virtiocontainerdisk
          interfaces:
          - masquerade: {}
            model: e1000 
            name: default
        machine:
          type: q35
        resources:
          requests:
            memory: 8G
      networks:
      - name: default
        pod: {}
      volumes:
      - name: cdromiso
        persistentVolumeClaim:
          claimName: iso-win10
      - name: harddrive
        persistentVolumeClaim:
          claimName: win10-vm1
      - containerDisk:
          image: kubevirt/virtio-container-disk
        name: virtiocontainerdisk
  • cdromiso:提供操作系统安装镜像,即上传镜像后生成的pvc。
  • harddrive:虚拟机使用的磁盘,即操作系统就会安装在该磁盘上。
  • containerDisk:由于Windows默认无法识别raw格式的磁盘,所以需要安装virtio驱动。containerDisk可以将打包好virtio驱动的容器镜像挂载到虚拟机中。

contos的虚拟安装与windows类似,如在安装过程中遇见问题可以留言讨论。

kubevirt交流群:766168407

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值