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

kubevirt使用ceph创建虚拟机(三),第1张

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          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类似,如在安装过程中遇见问题可以留言讨论。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/905269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-15
下一篇 2022-05-15

发表评论

登录后才能评论

评论列表(0条)

保存