《OpenShift / RHEL / DevSecOps 汇总目录》
说明:本文已经在支持 OpenShift 4.16 的 OpenShift Local 环境中验证,但未更新截图。
注意:如果是 OpenShift Local,至少要为其分配 6vcpu
为运行 OpenShift Local 的宿主机设置虚拟化嵌套
OpenShift Local 是一个开箱即用 OpenShift 单机环境。由于它自身就是运行在一个 VM 中,因此要在一个宿主机中运行 OpenShift Local 的虚拟机、并在其中再运行 OpenShift Virtualization 的虚拟机,那么需要首先完成以下配置以启动运行 OpenShift Local 的宿主机的虚拟化嵌套功能。
以下以运行在 Intel CPU 上的 RHEL 7 为例说明如何启动 VM 宿主机 KVM 的 “nested virt” 功能。
- 运行命令,如果返回是 N 或者是 0,则说明 VM 嵌套功能还没有打开。
$ cat /sys/module/kvm_intel/parameters/nested
- 执行以下命令先卸载 kvm_intel 模块,然后再使用 nested=1 配置加载 kvm_intel 模块。
$ sudo modprobe -r kvm_intel
$ sudo modprobe kvm_intel nested=1
- 运行命令,确认返回是 Y 或者 1,说明 VM 嵌套功能已经打开。
$ cat /sys/module/kvm_intel/parameters/nested
在 OpenShift Local 中安装和配置 OpenShift Virtualization
在正常安装和运行 OpenShift Local 后执行以下命令安装 OpenShift Virtualization 环境。
注意:由于运行在 OpenShift Virtualization 中的 VM 会使用存储,建议在启动 OpenShift Local 的时候最好多分配一些存储给其使用。
-
使用缺省配置安装 OpenShift Virtualization Operator。
-
在 OpenShift Virtualization Operator 中使用缺省配置创建 HyperConverged 对象,创建完后可以在 “开发者” 视图中看到以下部署资源。
-
安装完成后刷新 “管理员” 视图,会出现 Virtualization 菜单。
-
执行命令查看导入到当前 OpenShift 的 VM 模板占所用的 PV。
$ oc get pv | grep openshift-virtualization
pvc-3f338203-d478-4bda-aaa1-93b11d3bf0bd 179Gi RWO Delete Bound openshift-virtualization-os-images/centos7-680e9b4e0fba crc-csi-hostpath-provisioner 4h35m
pvc-74fbe09d-e41f-4ff8-812d-669303839dce 179Gi RWO Delete Bound openshift-virtualization-os-images/fedora-56ccabc01cbe crc-csi-hostpath-provisioner 4h34m
pvc-7ae30911-d472-4930-9f32-b25f6516e76c 179Gi RWO Delete Bound openshift-virtualization-os-images/centos-stream9-23d7d288eb34 crc-csi-hostpath-provisioner 26m
pvc-a3732e01-981d-44b5-8621-f084177ac873 179Gi RWO Delete Bound openshift-virtualization-os-images/centos-stream9-36625236fc69 crc-csi-hostpath-provisioner 4h35m
pvc-c610305b-c472-4f82-98a0-7c0429538306 179Gi RWO Delete Bound openshift-virtualization-os-images/centos-stream8-2f16c067b974 crc-csi-hostpath-provisioner 4h34m
pvc-dd408418-efb3-4640-a687-f3c17e3a719f 179Gi RWO Delete Bound openshift-virtualization-os-images/rhel8-e004563ff8cf crc-csi-hostpath-provisioner 4h36m
pvc-ece64b06-9ca3-40d7-9fdc-14b593764986 179Gi RWO Delete Bound openshift-virtualization-os-images/rhel9-35d9b2336799 crc-csi-hostpath-provisioner 4h36m
创建运行 VM
- 创建名为 my-vm 的项目。
- 进入 Virtualization 菜单的 Catalog,在 Template catalog 页面中选择 “CentOS 7.+ VM”,然后在右滑出来的页面点击 “Customize VirtualMachine“。
- 在 Overview 页面中可以修改 VM 名称。
- 进入 Scripts 栏目,然后点击 Cloud-init 区域的 Edit 连接,在打开对话框中修改登录用户名、密码和主机名。
- 最后点击页面下方的 Create Virtualization,这样 OpenShift 就开始创建 VM 所需相关资源,成功后会启动该 VM。
- 进入上图的 “Open web console” 连接,然后在 Console 中使用前面配置的 User/Password 登录 VM。
- 查看运行 VM 实例状态。
$ oc get vmi -n my-vm
NAME AGE PHASE IP NODENAME READY
centos7-vm1 4h53m Running 10.217.0.132 crc-pbwlw-master-0 True
- 执行命令,查看 VM 声明的 PVC。
$ oc get pvc -n my-vm
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
centos7-teal-spoonbill-85 Bound pvc-1dfd2d55-00f8-4126-9a48-23e53b887fae 299Gi RWO crc-csi-hostpath-provisioner <unset> 3m59s
- 查看运行 VM 的 Pod 实例。
$ oc get pod -n my-vm
NAME READY STATUS RESTARTS AGE
virt-launcher-centos7-vm1-6bdcm 1/1 Running 0 3h37m
视频
参考
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-nested_virt_setup