《OpenShift / RHEL / DevSecOps 汇总目录》
文本已在OpenShift 4.12 + OpeShift Virtualization 4.11 环境中进行验证,不过下文部分 OpenShift Virtualization 的截图未更新。
在安装 OpenShift Virtualization 前需要确认 OpenShift 集群必须具备以下特性:
用默认配置将 OpenShift Virtualization Operator 安装到 openshift-cnv 项目中。
用默认配置创建 HyperConverged 对象。
安装完 HyperConverged 可在开发者视图的拓扑中看到安装的资源。
安装 HyperConverged 完成后刷新管理员视图,可看到新的“虚拟化”菜单。
$ oc new-project my-vm
$ echo aaa>aaa
12. 在 OpenShift 的开发者视图中也可看到 fedora-1 的拓扑。
在创建 VM的时候,在“常规设置” 页面中除去 “将可用操作系统源克隆到此虚拟机” 选项。然后确认“引导源” 为 “URL(creates PVC)”,并在 “URL” 中提供一个已有 KVM 虚机镜像的有效地址,例如下图的 “http://10.20.0.254/download/Fedora35.qcow2”。
后续配置同以前的说明。在创建VM的时候可以看到 “Importing (CDI)” 的状态和执行情况。
$ echo bbb>bbb
注意:虚拟机必须具有一个采用共享 ReadWriteMany(RWX)访问模式的 PVC 才能实时迁移。
$ while sleep 1; do date; done
$ oc get vm
NAME AGE STATUS READY
fedora-1 100m Running True
fedora-2 53m Running True
$ oc get vmi
NAME AGE PHASE IP NODENAME READY
fedora-1 17m Running 10.128.2.67 worker-2 True
fedora-2 61m Running 10.128.2.65 worker-2 True
$ curl -k -o - https://hyperconverged-cluster-cli-download-openshift-cnv.apps.${cluster_name}.${cluster_domain}/amd64/linux/virtctl.tar.gz | sudo tar -xvzf - -C /usr/local/bin/
[lab-user@provision ~]$ virtctl stop fedora-1
VM fedora-1 was scheduled to stop
[lab-user@provision ~]$ oc get vm
NAME AGE STATUS READY
fedora-1 104m Stopped False
fedora-2 57m Running True
[lab-user@provision ~]$ virtctl start fedora-1
VM fedora-1 was scheduled to start
[lab-user@provision ~]$ oc get vm
NAME AGE STATUS READY
fedora-1 106m Running True
fedora-2 59m Running True
$ virtctl console fedora-1
Successfully connected to fedora-1 console. The escape sequence is ^]
[fedora@fedora-1 ~]$ ll
total 4
-rw-r--r--. 1 fedora fedora 4 Apr 30 17:20 aaa
$ virtctl migrate fedora-1
$ oc get vmi fedora-1
NAME AGE PHASE IP NODENAME READY
fedora-1 22m Running 10.128.2.69 worker-2 True
$ oc label node worker-0 cpu=fast
node/worker-0 labeled
$ oc get node -L cpu
NAME STATUS ROLES AGE VERSION CPU
master-0 Ready master 10d v1.23.5+9ce5071
master-1 Ready master 10d v1.23.5+9ce5071
master-2 Ready master 10d v1.23.5+9ce5071
worker-0 Ready worker 10d v1.23.5+9ce5071 fast
worker-1 Ready worker 10d v1.23.5+9ce5071
worker-2 Ready worker 10d v1.23.5+9ce5071
$ oc patch vm/fedora-1 --type merge -p '{"spec":{"template":{"spec":{"nodeSelector":{"cpu":"fast"}}}}}'
virtualmachine.kubevirt.io/fedora-1 patched
$ oc delete vmi/fedora-1
virtualmachineinstance.kubevirt.io "fedora-1" deleted
$ oc get vmi fedora-1
NAME AGE PHASE IP NODENAME READY
fedora-1 61s Running 10.129.2.66 worker-0 True
在OpenShift上运行容器化虚拟机
https://access.redhat.com/documentation/zh-cn/openshift_container_platform/4.10/html-single/virtualization/index
https://cloud.redhat.com/blog/your-first-vm-with-openshift-virtualization-using-the-web-console
https://github.com/rdoxenham/openshift-virt-labs
https://developer.ibm.com/blogs/a-declarative-coexistence-of-virtual-machines-and-containers/