1、ephemeral - 其对应的卷 (PVC) 的数据不会以发生变化,因为所有的写入都保存在位于本地存储的临时镜像中。当 VM 停止、重启或删除时,便会丢弃临时镜像。
2、containerDisk - 从 registry 中拉取镜像到运行 VM 的主机节点上,并在 VM 启动时作为磁盘附加到 VM。containerDisk 提供了在容器镜像注册表中存储和分发 VM 磁盘的能力。不过 containerDisk 是临时的,数据将在 VM 停止、重启或删除时丢弃。
4、persistentVolumeClaim - 将可用的 PVC 附加到 VM。将现有 VM 导入到 OpenShift 中的方法是使用 CDI 将现有 VM 的磁盘或容器镜像中的磁盘导入到 PVC 中,然后将 PVC 附加到 VM 实例。
5、emptyDisk - 为 VM 创建额外的 qcow2 磁盘。当 VM 重启,数据会保留下来,但当重新创建 VM,数据将会被丢弃。
6、cloudInitNoCloud - 将所引用的 cloudInitNoCloud 数据源附加给磁盘,以便在 VM 启动后自动执行脚本。VM 内部需要安装 cloud-init。
3.2 执行VM部署描述文件
1 2 3 4 5 6 7 8
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 36m default-scheduler 0/3 nodes are available: 3 Insufficient devices.kubevirt.io/kvm. preemption: 0/3 nodes are available: 3 No preemption victims found for incoming pod. Warning FailedScheduling 26m (x2 over 31m) default-scheduler 0/3 nodes are available: 3 Insufficient devices.kubevirt.io/kvm. preemption: 0/3 nodes are available: 3 No preemption victims found for incoming pod. [root@k8s-m1 ~]# kubectl -n kubevirt patch kubevirt kubevirt --type=merge --patch '{"spec":{"configuration":{"developerConfiguration":{"useEmulation":true}}}}' kubevirt.kubevirt.io/kubevirt patched [root@k8s-m1 ~]#
1
# kubectl apply -f test.yaml
1 2 3
# kubectl get vm NAME AGE STATUS READY vm-cirros 61m Stopped False
# virtctl start vm-cirros VM vm-cirros was scheduled to start
1 2 3 4 5 6
[root@node2 ~]# kubectl get vm NAME AGE STATUS READY vm-cirros 63m Starting False [root@node2 ~]# kubectl get vmi NAME AGE PHASE IP NODENAME READY vm-cirros 8s Running 10.233.74.81 node4 True
四、访问虚拟机控制台
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# virtctl console vm-cirros Successfully connected to vm-cirros console. The escape sequence is ^] 显示这个信息时,需要按回车键,才能出现登录提示。
login as 'cirros' user. default password: 'gocubsgo'. use 'sudo'for root. vm-cirros login: cirros 用户名 Password: gocubsgo 密码 $ ip a s 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast qlen 1000 link/ether d6:b9:cf:6a:9b:0c brd ff:ff:ff:ff:ff:ff inet 10.233.74.81/32 brd 10.255.255.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::d4b9:cfff:fe6a:9b0c/64 scope link valid_lft forever preferred_lft forever