第 8 章 高级虚拟机创建
8.1. 从红帽镜像创建虚拟机 复制链接链接已复制到粘贴板!
RHEL 镜像是金级镜像。它们作为容器磁盘在安全 registry 中发布。Containerized Data Importer (CDI) 轮询容器磁盘并将其导入到集群中,并将其存储在 openshift-virtualization-os-images 项目中作为快照或持久性卷声明(PVC)。您可以选择将自定义命名空间用于金级镜像。
RHEL 镜像自动更新。您可以为这些镜像禁用和重新启用自动更新。如需更多信息,请参阅"附加资源"。
集群管理员可以在 OpenShift Container Platform web 控制台中为 RHEL 虚拟机启用自动订阅。
您可以使用以下方法之一从红帽提供的操作系统镜像创建虚拟机(VM):
- 使用 Web 控制台从模板创建虚拟机。
- 使用 Web 控制台从实例类型创建虚拟机。
-
使用命令行从
VirtualMachine清单创建虚拟机。
不要在默认的 openshift Galaxy 命名空间中创建虚拟机。相反,创建一个新命名空间或使用没有 openshift 前缀的现有命名空间。
8.1.1. 关于金级镜像 复制链接链接已复制到粘贴板!
金级镜像是虚拟机(VM)的预配置快照,您可以用作部署新虚拟机的资源。例如,您可以使用金级镜像来更加一致地置备相同的系统环境,并更快高效地部署系统。
8.1.1.1. 金级镜像如何工作? 复制链接链接已复制到粘贴板!
通过在参考机器或虚拟机上安装和配置操作系统和软件应用程序来创建金级镜像。这包括设置系统、安装所需的驱动程序、应用补丁和更新以及配置特定选项和首选项。
创建金级镜像后,它会保存为模板或镜像文件,可在多个集群中复制和部署。金级镜像可以通过维护人员定期更新,以纳入必要的软件更新和补丁,确保镜像保持最新且安全,并且新创建的虚拟机基于这个更新的镜像。
8.1.1.2. 红帽对金级镜像的实施 复制链接链接已复制到粘贴板!
对于 Red Hat Enterprise Linux (RHEL) 版本,红帽发布金级镜像作为 registry 中的容器磁盘。容器磁盘是虚拟机镜像,它作为容器镜像 registry 存储在容器镜像 registry 中。安装 OpenShift Virtualization 后,任何发布的镜像将自动在连接的集群中提供。镜像在集群中可用后,可以使用它们创建虚拟机。
8.1.2. 关于虚拟机引导源 复制链接链接已复制到粘贴板!
虚拟机 (VM) 由虚拟机定义以及由数据卷支持的一个或多个磁盘组成。VM 模板允许您使用预定义的规格创建虚拟机。
每个模板都需要一个引导源,它是一个完全配置的磁盘镜像,包括配置的驱动程序。每个模板都包含一个虚拟机定义,其中包含指向引导源的指针。每个引导源都有一个预定义的名称和命名空间。对于某些操作系统,会自动提供一个引导源。如果没有提供,管理员必须准备自定义引导源。
提供的引导源会自动更新至操作系统的最新版本。对于自动更新的引导源,持久性卷声明 (PVC) 和卷快照会使用集群的默认存储类创建。如果在配置后选择了不同的默认存储类,您必须删除使用之前默认存储类配置的集群命名空间中的现有引导源。
8.1.3. 使用 Web 控制台为金级镜像配置自定义命名空间 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform Web 控制台为集群中的金级镜像配置自定义命名空间。
流程
-
在 web 控制台中,选择 Virtualization
Overview。 - 选择 Settings 选项卡。
-
在 Cluster 选项卡中,选择 General settings
Bootable volumes 项目。 选择要用于金级镜像的命名空间。
- 如果已创建了命名空间,请从 Project 列表中选择它。
如果您没有创建命名空间,请滚动到列表的底部,然后点 Create project。
- 在 Create project 对话框的 Name 字段中输入您的新命名空间的名称。
- 点 Create。
8.1.4. 使用 CLI 为金级镜像配置自定义命名空间 复制链接链接已复制到粘贴板!
您可以通过在 HyperConverged 自定义资源 (CR) 中设置 spec.commonBootImageNamespace 字段,为集群中的金级镜像配置自定义命名空间。
先决条件
-
已安装 OpenShift CLI(
oc)。 - 您创建了用于金级镜像的命名空间。
流程
运行以下命令,在默认编辑器中打开
HyperConvergedCR:$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv通过更新
spec.commonBootImageNamespace字段的值来配置自定义命名空间。配置文件示例:
apiVersion: hco.kubevirt.io/v1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: openshift-cnv spec: commonBootImageNamespace: <custom_namespace> # ...其中:
spec.commonBootImageNamespace- 指定用于金级镜像的命名空间。
- 保存更改并退出编辑器。