第 7 章 高级虚拟机创建
7.1. 从红帽镜像创建虚拟机 复制链接链接已复制到粘贴板!
7.1.1. 从红帽镜像创建虚拟机 复制链接链接已复制到粘贴板!
红帽镜像是金级镜像。它们作为容器磁盘在安全 registry 中发布。Containerized Data Importer (CDI) 轮询容器磁盘并将其导入到集群中,并将其存储在 openshift-virtualization-os-images 项目中作为快照或持久性卷声明(PVC)。您可以选择将自定义命名空间用于金级镜像。有关使用自定义命名空间的更多信息,请参阅:
红帽镜像会自动更新。您可以为这些镜像禁用和重新启用自动更新。请参阅管理红帽引导源更新。
集群管理员可以在 OpenShift Virtualization web 控制台中为 Red Hat Enterprise Linux (RHEL)虚拟机启用自动订阅。
您可以使用以下方法之一从红帽提供的操作系统镜像创建虚拟机(VM):
不要在默认的 openshift Galaxy 命名空间中创建虚拟机。相反,创建一个新命名空间或使用没有 openshift 前缀的现有命名空间。
7.1.1.1. 关于金级镜像 复制链接链接已复制到粘贴板!
金级镜像是虚拟机(VM)的预配置快照,您可以用作部署新虚拟机的资源。例如,您可以使用金级镜像来更加一致地置备相同的系统环境,并更快高效地部署系统。
7.1.1.1.1. 金级镜像如何工作? 复制链接链接已复制到粘贴板!
通过在参考机器或虚拟机上安装和配置操作系统和软件应用程序来创建金级镜像。这包括设置系统、安装所需的驱动程序、应用补丁和更新以及配置特定选项和首选项。
创建金级镜像后,它会保存为模板或镜像文件,可在多个集群中复制和部署。金级镜像可以通过维护人员定期更新,以纳入必要的软件更新和补丁,确保镜像保持最新且安全,并且新创建的虚拟机基于这个更新的镜像。
7.1.1.1.2. 红帽对金级镜像的实施 复制链接链接已复制到粘贴板!
对于 Red Hat Enterprise Linux (RHEL)版本,红帽发布金级镜像作为 registry 中的容器磁盘。容器磁盘是虚拟机镜像,它作为容器镜像 registry 存储在容器镜像 registry 中。安装 OpenShift Virtualization 后,任何发布的镜像将自动在连接的集群中提供。镜像在集群中可用后,可以使用它们创建虚拟机。
7.1.1.2. 关于虚拟机引导源 复制链接链接已复制到粘贴板!
虚拟机 (VM) 由虚拟机定义以及由数据卷支持的一个或多个磁盘组成。VM 模板允许您使用预定义的规格创建虚拟机。
每个模板都需要一个引导源,它是一个完全配置的磁盘镜像,包括配置的驱动程序。每个模板都包含一个虚拟机定义,其中包含指向引导源的指针。每个引导源都有一个预定义的名称和命名空间。对于某些操作系统,会自动提供一个引导源。如果没有提供,管理员必须准备自定义引导源。
提供的引导源会自动更新至操作系统的最新版本。对于自动更新的引导源,持久性卷声明 (PVC) 和卷快照会使用集群的默认存储类创建。如果在配置后选择了不同的默认存储类,您必须删除使用之前默认存储类配置的集群命名空间中的现有引导源。
7.1.1.3. 使用 Web 控制台为金级镜像配置自定义命名空间 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Service on AWS 经典架构 web 控制台为集群中的金级镜像配置自定义命名空间。
流程
-
在 web 控制台中,选择 Virtualization
Overview。 - 选择 Settings 选项卡。
-
在 Cluster 选项卡中,选择 General settings
Bootable volumes 项目。 选择要用于金级镜像的命名空间。
- 如果已创建了命名空间,请从 Project 列表中选择它。
如果您没有创建命名空间,请滚动到列表的底部,然后点 Create project。
- 在 Create project 对话框的 Name 字段中输入您的新命名空间的名称。
- 点 Create。
7.1.1.4. 使用 CLI 为金级镜像配置自定义命名空间 复制链接链接已复制到粘贴板!
您可以通过在 HyperConverged 自定义资源 (CR) 中设置 spec.commonBootImageNamespace 字段,为集群中的金级镜像配置自定义命名空间。
先决条件
-
已安装 OpenShift CLI(
oc)。 - 您创建了用于金级镜像的命名空间。
流程
运行以下命令,在默认编辑器中打开
HyperConvergedCR:oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过更新
spec.commonBootImageNamespace字段的值来配置自定义命名空间:配置文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 用于金级镜像的命名空间。
- 保存更改并退出编辑器。
7.1.2. 异构集群支持 复制链接链接已复制到粘贴板!
对异构集群的金级镜像支持只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
异构集群是一个集群,节点有不同的架构。异构集群通过在一个集群中混合不同类型的硬件来提升最佳计算资源使用。这允许工作负载更好地匹配用于工作负载任务的硬件,而不是常规的计算平台。例如,在异构集群中,GPU 和通用计算资源可以合并,以及分配给适当硬件的工作负载。
如果在异构集群中禁用了金级镜像支持,您可能会遇到节点和镜像架构之间的不一致的情况。当镜像用于虚拟机创建与节点架构不匹配时会出现这种情况。这可能导致虚拟机启动失败或者未按预期运行的虚拟机。当异构集群中没有启用此功能时,会生成警告级别警报 HCOMultiArchGoldenImagesDisabled。
如果您有一个异构集群,但不想启用多个架构支持,请参阅 修改异构集群中的工作负载节点放置,以便将节点放置到特定架构的过程。
对异构集群的金级镜像支持扩展了以下区域中的金级镜像支持:
- 启用 VM 创建者使用特定架构部署持久虚拟机。
- 启用 VM 创建者定义支持异构集群的自定义金级镜像。
如果引导镜像支持所需的架构,则同一金级镜像可用于不同架构的节点。例如,支持 ARM 和 AMD 架构的金级镜像可用于两种类型的节点。
默认不启用对异构集群的金级镜像支持。有关启用此功能的步骤,请参阅启用异构集群支持
7.1.2.1. 启用异构集群支持 复制链接链接已复制到粘贴板!
您可以通过将 HyperConverged 自定义资源(CR)中的 enableMultiArchBootImageImport 功能门设置为 true 来为异构集群启用金级镜像支持。
对异构集群的金级镜像支持只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
先决条件
-
您可以使用具有
cluster-admin权限的用户访问集群。 -
已安装 OpenShift CLI(
oc)。
流程
运行以下命令启用
enableMultiArchBootImageImport功能门:oc patch hyperconverged kubevirt-hyperconverged -n openshift-cnv \ --type json -p '[{"op":"replace","path":"/spec/featureGates/enableMultiArchBootImageImport", "value": true}]'$ oc patch hyperconverged kubevirt-hyperconverged -n openshift-cnv \ --type json -p '[{"op":"replace","path":"/spec/featureGates/enableMultiArchBootImageImport", "value": true}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.2.2. 在异构集群中修改常见的金级镜像源 复制链接链接已复制到粘贴板!
您可以通过在 HyperConverged 自定义资源(CR)中指定 ssp.kubevirt.io/dict.architectures 注解中的支持的架构来修改异构集群中通用金级镜像的镜像源。
对异构集群的金级镜像支持只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
先决条件
-
已安装 OpenShift CLI(
oc)。
流程
运行以下命令,在默认编辑器中打开
HyperConvergedCR:oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
HyperConvergedCR,在dataImportCronTemplates部分为ssp.kubevirt.io/dict.architectures注解添加适当的值。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 此镜像支持的构架的逗号分隔列表。例如,如果镜像支持
amd64和arm64架构,则该值将是"amd64,arm64"。
-
保存并退出编辑器以更新
HyperConvergedCR。
7.1.2.3. 在异构集群中添加自定义金级镜像 复制链接链接已复制到粘贴板!
对异构集群的金级镜像支持只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
通过在 HyperConverged 自定义资源(CR)的 spec.dataImportCronTemplates.metadata.annotations 小节中设置 ssp.kubevirt.io/dict.architectures 注解,在异构集群中添加自定义金级镜像。此注解列出了镜像支持的架构。
先决条件
-
已安装 OpenShift CLI(
oc)。
流程
运行以下命令,在默认编辑器中打开
HyperConvergedCR:oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
HyperConvergedCR,以添加自定义金级镜像。您必须在dataImportCronTemplates部分中为ssp.kubevirt.io/dict.architectures注解添加适当的值。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 此镜像支持的构架的逗号分隔列表。例如,如果镜像支持
amd64和arm64架构,则该值将是"amd64,arm64"。
注意镜像可能比集群中要使用的架构更多。您不必列出镜像支持的所有架构,而只列出您要为其创建引导源的所有架构。
-
保存并退出编辑器以更新
HyperConvergedCR。
7.1.2.4. 修改异构集群中的工作负载节点放置 复制链接链接已复制到粘贴板!
对异构集群的金级镜像支持只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
如果您有一个异构集群,但不想启用多个架构支持,您可以将 HyperConverged 自定义资源(CR)中的工作负载节点放置修改为仅包含具有特定架构的节点。
先决条件
-
已安装 OpenShift CLI(
oc)。
流程
运行以下命令,在默认编辑器中打开
HyperConvergedCR:oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
HyperConvergedCR,以修改工作负载节点放置,使其只包含具有特定架构的节点。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<node_architecture> 替换为目标架构。例如,要将放置限制为 AMD 节点,请使用amd64。
-
保存并退出编辑器以更新
HyperConvergedCR。