×

关于虚拟机模板

启动源

您可以通过使用具有可用启动源的模板来加快虚拟机的创建速度。如果模板没有自定义标签,则具有启动源的模板将标记为**可用启动源**。

没有启动源的模板标记为**需要启动源**。请参见从自定义镜像创建虚拟机

自定义

您可以在启动虚拟机之前自定义磁盘源和虚拟机参数。

有关磁盘源设置的详细信息,请参阅存储卷类型存储字段

如果您复制虚拟机模板及其所有标签和注释,则在部署调度、扩展和性能 (SSP) 运算符的新版本后,您的模板版本将被标记为已弃用。您可以移除此标记。请参阅使用 Web 控制台自定义虚拟机模板

单节点 OpenShift

由于存储行为的差异,某些模板与单节点 OpenShift 不兼容。为了确保兼容性,请勿为使用数据卷或存储配置文件的模板或虚拟机设置evictionStrategy字段。

从模板创建虚拟机

您可以使用 OpenShift Container Platform Web 控制台从具有可用引导源的模板创建虚拟机 (VM)。

可选:您可以在启动虚拟机之前自定义模板或虚拟机参数,例如数据源、cloud-init 或 SSH 密钥。

步骤
  1. 在 Web 控制台中导航到**虚拟化** → **目录**。

  2. 单击**可用引导源**以筛选具有引导源的模板。

    目录将显示默认模板。单击**所有项目**以查看根据您的筛选条件可用的所有模板。

  3. 单击模板磁贴以查看其详细信息。

  4. 可选:如果您使用的是 Windows 模板,则可以通过选中**挂载 Windows 驱动程序磁盘**复选框来挂载 Windows 驱动程序磁盘。

  5. 如果您不需要自定义模板或虚拟机参数,请单击**快速创建虚拟机**以从模板创建虚拟机。

    如果您需要自定义模板或虚拟机参数,请执行以下操作

    1. 单击**自定义虚拟机**。

    2. 展开**存储**或**可选参数**以编辑数据源设置。

    3. 单击**自定义虚拟机参数**。

      **自定义和创建虚拟机**窗格将显示**概述**、**YAML**、**调度**、**环境**、**网络接口**、**磁盘**、**脚本**和**元数据**选项卡。

    4. 编辑虚拟机启动前必须设置的参数,例如 cloud-init 或静态 SSH 密钥。

    5. 单击**创建虚拟机**。

      **虚拟机详细信息**页面将显示配置状态。

存储卷类型

表 1. 存储卷类型
类型 描述

ephemeral

本地写时复制 (COW) 镜像,它使用网络卷作为只读备份存储。备份卷必须是**PersistentVolumeClaim**。临时镜像在虚拟机启动时创建,并将所有写入内容存储在本地。临时镜像在虚拟机停止、重启或删除时将被丢弃。备份卷 (PVC) 不会以任何方式发生变异。

persistentVolumeClaim

将可用的 PV 附加到虚拟机。附加 PV 允许虚拟机数据在会话之间持久存在。

建议使用 CDI 将现有的虚拟机磁盘导入 PVC,并将 PVC 附加到虚拟机实例,这是将现有虚拟机导入 OpenShift Container Platform 的推荐方法。磁盘在 PVC 中使用有一些要求。

dataVolume

数据卷基于persistentVolumeClaim磁盘类型构建,通过导入、克隆或上传操作来管理虚拟机磁盘的准备过程。使用此卷类型的虚拟机保证在卷准备好之前不会启动。

指定type: dataVolumetype: ""。如果您为type指定任何其他值,例如persistentVolumeClaim,则会显示警告,并且虚拟机不会启动。

cloudInitNoCloud

附加一个包含引用的 cloud-init NoCloud 数据源的磁盘,为虚拟机提供用户数据和元数据。虚拟机磁盘内需要安装 cloud-init。

containerDisk

引用存储在容器镜像注册表中的镜像,例如虚拟机磁盘。启动虚拟机时,将从注册表中提取镜像并将其作为磁盘附加到虚拟机。

containerDisk卷不限于单个虚拟机,对于创建不需要持久存储的大量虚拟机克隆很有用。

容器镜像注册表仅支持 RAW 和 QCOW2 格式的磁盘类型。推荐使用 QCOW2 以减小镜像大小。

containerDisk卷是临时的。在虚拟机停止、重新启动或删除时,它将被丢弃。containerDisk卷适用于只读文件系统(如 CD-ROM)或一次性虚拟机。

emptyDisk

创建一个额外的稀疏 QCOW2 磁盘,该磁盘与虚拟机接口的生命周期绑定。数据在虚拟机中经受来宾发起的重新引导,但在虚拟机停止或从 Web 控制台重新启动时将被丢弃。空磁盘用于存储应用程序依赖项和数据,这些依赖项和数据超出了临时磁盘的有限临时文件系统。

还必须提供磁盘**容量**大小。

存储字段

字段 描述

空白(创建 PVC)

创建一个空磁盘。

通过 URL 导入(创建 PVC)

通过 URL(HTTP 或 HTTPS 端点)导入内容。

使用现有 PVC

使用集群中已有的 PVC。

克隆现有 PVC(创建 PVC)

选择集群中可用的现有 PVC 并克隆它。

通过注册表导入(创建 PVC)

通过容器注册表导入内容。

容器(临时)

上传来自集群可访问的注册表中容器的内容。容器磁盘应仅用于只读文件系统,例如 CD-ROM 或临时虚拟机。

名称

磁盘的名称。名称可以包含小写字母 (a-z)、数字 (0-9)、连字符 (-) 和句点 (.),最多 253 个字符。第一个和最后一个字符必须是字母数字字符。名称不能包含大写字母、空格或特殊字符。

大小

磁盘大小(GiB)。

类型

磁盘类型。例如:磁盘或 CD-ROM

接口

磁盘设备类型。支持的接口是**virtIO**、**SATA** 和**SCSI**。

存储类

用于创建磁盘的存储类。

高级存储设置

以下高级存储设置是可选的,可用于**空白**、**通过 URL 导入**和**克隆现有 PVC**磁盘。

如果您未指定这些参数,则系统将使用默认的存储配置文件值。

参数 选项 参数描述

卷模式

文件系统

将虚拟磁盘存储在基于文件系统的卷上。

将虚拟磁盘直接存储在块卷上。只有在底层存储支持的情况下才使用Block

访问模式

ReadWriteOnce (RWO)

单个节点可以将卷安装为读写。

ReadWriteMany (RWX)

多个节点可以同时将卷安装为读写。

此模式对于实时迁移是必需的。

使用 Web 控制台自定义虚拟机模板

您可以通过修改虚拟机或模板参数(例如数据源、cloud-init 或 SSH 密钥)来自定义现有的虚拟机 (VM) 模板,然后启动虚拟机。如果您通过复制模板并包含其所有标签和注释来自定义模板,则在部署调度、扩展和性能 (SSP) 运算符的新版本后,自定义模板将被标记为已弃用。

您可以从自定义模板中移除已弃用标签。

步骤
  1. 在 Web 控制台中导航到**虚拟化** → **模板**。

  2. 在虚拟机模板列表中,单击标记为已弃用的模板。

  3. 单击**标签**旁边的铅笔图标旁边的**编辑**。

  4. 删除以下两个标签:

    • template.kubevirt.io/type: "base"

    • template.kubevirt.io/version: "version"

  5. 单击**保存**。

  6. 单击现有**注释**数量旁边的铅笔图标。

  7. 删除以下注释:

    • template.kubevirt.io/deprecated

  8. 单击**保存**。

在 Web 控制台中创建自定义虚拟机模板

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

步骤
  1. 在 Web 控制台中,单击侧边菜单中的**虚拟化** → **模板**。

  2. 可选:使用**项目**下拉菜单更改与新模板关联的项目。所有模板默认保存到openshift项目。

  3. 单击**创建模板**。

  4. 通过编辑 YAML 文件来指定模板参数。

  5. 单击**创建**。

    模板将显示在**模板**页面上。

  6. 可选:单击**下载**以下载并保存 YAML 文件。