2.4. 为基本操作系统创建数据卷
您必须使用 Red Hat OpenShift Container Platform (RHOCP)集群创建数据卷,以存储 Controller 虚拟机(VM)的基本操作系统镜像。在创建 OpenStackControlPlane 和 OpenStackVmSet 自定义资源时,您可以使用 baseImageVolumeName 参数指定此数据卷。
先决条件
virtctl客户端工具安装在您的工作站上。要在 Red Hat Enterprise Linux (RHEL)工作站上安装这个工具,请使用以下命令:$ sudo subscription-manager repos --enable=cnv-4.12-for-rhel-8-x86_64-rpms $ sudo dnf install -y kubevirt-virtctlvirt-customize客户端工具已安装在您的工作站上。要在 RHEL 工作站上安装此工具,请使用以下命令:$ dnf install -y libguestfs-tools-c
流程
- 将红帽客户门户网站 的产品下载 部分中的 RHEL 9.2 QCOW2 镜像下载到您的工作站。
可选:添加自定义 CA 证书:
$ sudo -s $ export LIBGUESTFS_BACKEND=direct $ virt-copy-in -a <local_path_to_image> <ca_certificate>.pem /etc/pki/ca-trust/source/anchors/您可能想要添加自定义 CA 证书来保护身份服务的 LDAP 通信,或者与任何非 RHOSP 系统通信。
创建一个脚本来自定义镜像来分配可预测的网络接口名称:
#!/bin/bash set -eux if [ -e /etc/kernel/cmdline ]; then echo 'Updating /etc/kernel/cmdline' sed -i -e "s/^\(.*\)net\.ifnames=0\s*\(.*\)/\1\2/" /etc/kernel/cmdline fi source /etc/default/grub if grep -q "net.ifnames=0" <<< "$GRUB_CMDLINE_LINUX"; then echo 'Updating /etc/default/grub' sed -i -e "s/^\(GRUB_CMDLINE_LINUX=.*\)net\.ifnames=0\s*\(.*\)/\1\2/" /etc/default/grub fi if [ "$GRUB_ENABLE_BLSCFG" == "true" ]; then echo 'Fixing BLS entries' find /boot/loader/entries -type f -exec sed -i -e "s/^\(.*\)net\.ifnames=0\s*\(.*\)/\1\2/" {} \; fi # Always do this, on RHEL8 with BLS we still need it as the BLS entry uses $kernelopts from grubenv echo 'Running grub2-mkconfig' grub2-mkconfig -o /etc/grub2.cfg grub2-mkconfig -o /etc/grub2-efi.cfg rm -f /etc/sysconfig/network-scripts/ifcfg-ens* /etc/sysconfig/network-scripts/ifcfg-eth* update-ca-trust extract运行镜像自定义脚本:
$ sudo -s $ export LIBGUESTFS_BACKEND=direct $ chmod 755 customize_image.sh $ virt-customize -a <local_path_to_image> --run customize_image.sh --truncate /etc/machine-id使用
virtctl将镜像上传到 OpenShift Virtualization:$ virtctl image-upload dv <datavolume_name> -n openstack \ --size=<size> --image-path=<local_path_to_image> \ --storage-class <storage_class> --access-mode <access_mode> --insecure-
将
<datavolume_name> 替换为数据卷的名称,如openstack-base-img。 -
将
<size> 替换为您的环境所需的数据卷的大小,例如50Gi。最小值为 50GB。 将
<storage_class> 替换为集群中所需的存储类。使用以下命令检索可用的存储类:$ oc get storageclass-
将
<access_mode> 替换为 PVC 的访问模式。默认值为ReadWriteOnce。
-
将