第 11 章 虚拟机模板

11.1. 创建虚拟机模板

11.1.1. 关于虚拟机模板

VirtualizationTemplates 页面中列出了预先配置的红帽虚拟机模板。这些模板适用于 Red Hat Enterprise Linux、Fedora、微软 Windows 10 和 Microsoft Windows Servers 的不同版本。每个红帽虚拟机模板都预先配置了操作系统镜像、操作系统的默认设置、类型(CPU 和内存)以及工作负载类型(server)。

Templates 页面中显示四个类型的虚拟机模板:

  • 红帽支持的模板完全被红帽模板。
  • 用户支持的模板 红帽支持的 模板,但由用户克隆并创建。
  • 红帽提供的模板,红帽会提供有限的支持。
  • 用户提供的模板是由 红帽提供的,但由用户克隆和创建的模板。

您可以使用模板目录中的过滤器,按照引导源可用性、操作系统和工作负载等属性对模板进行排序。

您不能编辑或删除 Red Hat SupportedRed Hat Provided 模板。您可以克隆模板,将其保存为自定义虚拟机模板,然后编辑该模板。

您还可以通过编辑 YAML 文件示例来创建自定义虚拟机模板。

11.1.2. 关于虚拟机和引导源

虚拟机由虚拟机定义以及由数据卷支持的一个或多个磁盘组成。虚拟机模板允许您使用预定义的虚拟机规格创建虚拟机。

每个虚拟机模板都需要一个引导源,它是一个完全配置的虚拟机磁盘镜像,包括配置的驱动程序。每个虚拟机模板包含一个虚拟机定义,其中包含指向引导源的指针。每个引导源都有一个预定义的名称和命名空间。对于某些操作系统,会自动提供一个引导源。如果没有提供,管理员必须准备自定义引导源。

提供的引导源会自动更新至操作系统的最新版本。对于自动更新的引导源,持久性卷声明(PVC)使用集群的默认存储类创建。如果在配置后选择了不同的默认存储类,您必须删除使用之前的默认存储类配置的集群命名空间中的现有数据卷。

要使用引导源功能,请安装 OpenShift Virtualization 的最新版本。命名空间 openshift-virtualization-os-images 启用该功能,并安装 OpenShift Virtualization Operator。安装引导源功能后,您可以创建引导源,将它们附加到模板,并从模板创建虚拟机。

使用通过上传本地文件、克隆现有 PVC、从 registry 或 URL 导入的持久性卷声明(PVC)定义引导源。使用 web 控制台将引导源附加到虚拟机模板。在启动源附加到虚拟机模板后,您可从模板创建任意数量的已完全配置的可随时使用虚拟机。

11.1.3. 在 web 控制台中创建虚拟机模板

您可以通过编辑 OpenShift Container Platform web 控制台中的 YAML 文件示例来创建虚拟机模板。

流程

  1. 在 web 控制台中,在侧边菜单中点 VirtualizationTemplates
  2. 可选:使用 Project 下拉菜单更改与新模板关联的项目。所有模板都默认保存到 openshift 项目中。
  3. Create Template
  4. 通过编辑 YAML 文件来指定模板参数。
  5. Create

    模板显示在 Templates 页面中。

  6. 可选:点 Download 下载并保存 YAML 文件。

11.1.4. 为虚拟机模板添加引导源

对于您要用于创建虚拟机或自定义模板的任何虚拟机模板,可以配置引导源。当使用引导源配置虚拟机模板时,会在 Templates 页面中被标记为 Source。在向模板中添加引导源后,您可以使用该模板创建新虚拟机。

在 web 控制台中选择和添加引导源有四个方法:

  • 上传本地文件(创建 PVC)
  • URL(创建 PVC)
  • Clone(创建 PVC)
  • Registry(创建 PVC)

先决条件

  • 要添加引导源,您必须以具有 os-images.kubevirt.io:edit RBAC 角色或管理员的用户身份登录。您不需要特殊权限才能从附加了引导源的模板创建虚拟机。
  • 要上传本地文件,操作系统镜像文件必须存在于本地机器中。
  • 要通过 URL 导入,您需要访问带操作系统镜像的 web 服务器。例如:带有镜像的 Red Hat Enterprise Linux 网页。
  • 要克隆现有的 PVC,需要使用 PVC 访问项目。
  • 要通过 registry 导入,需要访问容器 registry。

流程

  1. 在 OpenShift Container Platform 控制台中,从侧边菜单中点 VirtualizationTemplates
  2. 点模板旁边的选项菜单,然后选择 Edit boot source
  3. Add disk
  4. Add disk 窗口中,选择 Use this disk 作为引导源
  5. 输入磁盘名称并选择 Source,例如 Blank(creates PVC)使用现有 PVC
  6. 持久性卷声明大小 输入一个值,以指定适合未压缩镜像的 PVC 大小,以及任何需要的额外空间。
  7. 选择一个 Type,如 DiskCD-ROM
  8. 可选:点 Storage class 并选择用于创建磁盘的存储类。通常,这个存储类是创建供所有 PVC 使用的默认存储类。

    注意

    提供的引导源会自动更新至操作系统的最新版本。对于自动更新的引导源,持久性卷声明(PVC)使用集群的默认存储类创建。如果在配置后选择了不同的默认存储类,您必须删除使用之前的默认存储类配置的集群命名空间中的现有数据卷。

  9. 可选:清除 Apply optimized StorageProfile settings,以编辑访问模式或卷模式。
  10. 选择保存引导源的适当方法:

    1. 如果您上传一个本地文件,请点击 Save and upload
    2. 如果从 URL 或 registry 中导入内容,点 Save and import
    3. 如果克隆现有的 PVC,点 Save and clone

Catalog 页面中列出了带有引导源的自定义虚拟机模板。您可以使用此模板创建虚拟机。

11.1.4.1. 用于添加引导源的虚拟机模板字段

下表描述了在 模板窗口中添加引导源的字段。当您点 VirtualizationTemplates 页面中的虚拟机模板的 Add source 时会显示此窗口。

Name参数描述

引导源类型

上传本地文件(创建 PVC)

从本地设备上传文件。支持的文件类型包括 gz、xz、tar 和 qcow2。

URL(创建 PVC)

从 HTTP 或 HTTPS 端点提供的镜像导入内容。从镜像下载可用的网页中获取下载链接 URL,并在 Import URL 字段中输入该 URL 链接。示例:对于 Red Hat Enterprise Linux 镜像,登录到红帽客户门户网站,访问进行下载页面,并复制 KVM 客户机镜像的下载链接 URL。

PVC(创建 PVC)

使用集群中已可用的 PVC 并克隆它。

Registry(创建 PVC)

指定位于 registry 中并可从集群访问的可引导操作系统容器。示例: kubevirt/cirros-registry-dis-demo。

源供应商

 

可选字段。添加有关模板源的描述性文本,或者创建模板的用户名称。例如:Red Hat。

高级存储设置

StorageClass

用于创建磁盘的存储类。

访问模式

持久性卷访问模式。支持的访问模式有: 单用户(RWO)共享访问(RWX)只读(ROX)。如果选择了 Single User(RWO),则该磁盘可以被单一节点以读写模式挂载。如果选择了 Shared Access(RWX),则该磁盘可以被多个节点以读写模式挂载。kubevirt-storage-class-defaults 配置映射为数据卷提供默认的访问模式。默认值会根据集群中每个存储类的最佳选项设置。

注意

对一些功能(如虚拟机在节点间实时迁移)需要共享访问(RWX)。

卷模式

定义持久性卷是否使用格式化的文件系统或原始块状态。支持的模式是 BlockFilesystemkubevirt-storage-class-defaults 配置映射为数据卷的卷模式提供默认卷模式。默认值会根据集群中每个存储类的最佳选项设置。

11.1.5. 其他资源