7.2. 从模板创建虚拟机
您可以使用 OpenShift Container Platform web 控制台从红帽模板创建虚拟机 (VM)。
7.2.1. 关于虚拟机模板 复制链接链接已复制到粘贴板!
您可以使用虚拟机模板帮助您轻松创建虚拟机。
- 使用引导源加快创建
您可以使用有可用引导源的模板加快虚拟机创建。如果带有引导源的模板没有自定义标签,则会被标记为 Available boot source。
没有引导源的模板被标记为 Boot source required。详情请参阅管理自动引导源更新。
- 在启动虚拟机前进行自定义
在启动虚拟机前,您可以自定义磁盘源和虚拟机参数。
注意如果您使用所有标签和注解复制虚拟机模板,则当部署新版本的 Scheduling、Scale 和 Performance (SSP) Operator 时,您的模板版本将被标记为已弃用。您可以删除此设计。请参阅使用 Web 控制台从自定义虚拟机模板中删除已弃用的设计。
- 单节点 OpenShift
-
由于存储行为的区别,一些模板与单节点 OpenShift 不兼容。为确保兼容性,请不要为使用数据卷或存储配置集的模板或虚拟机设置
evictionStrategy字段。
7.2.2. 从模板创建虚拟机 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform web 控制台从带有可用引导源的模板创建虚拟机 (VM)。在启动虚拟机前,您可以自定义模板或虚拟机参数,如数据源、cloud-init 或 SSH 密钥。
您可以在 web 控制台中选择两个视图来创建虚拟机:
- 以虚拟化为中心的视图,可在视图的顶部提供与虚拟化相关的选项的简洁列表
- 常规视图,提供对各种 Web 控制台选项的访问,包括虚拟化
流程
在 OpenShift Container Platform Web 控制台中选择您的视图:
-
对于以虚拟化为中心的视图,请选择 Administrator
Virtualization Catalog。 -
对于常规视图,进入到 Virtualization
Catalog。
-
对于以虚拟化为中心的视图,请选择 Administrator
- 点模板目录选项卡。
- 点 Boot source available 复选框,使用引导源过滤模板。目录显示默认模板。
- 仅限异构集群 :要过滤搜索结果以显示与特定架构关联的模板,点 Architecture Type。
点 All templates 查看您的过滤器的可用模板。
-
要专注于特定模板,请在
Filter by keyword字段中输入关键字。 - 从 All projects 下拉菜单中选择模板项目,或者查看所有项目。
-
要专注于特定模板,请在
点模板标题查看其详情。
- 可选:如果您使用 Windows 模板,可以通过选择 Mount Windows 驱动程序磁盘复选框来挂载 Windows 驱动程序磁盘。
- 如果您不需要自定义模板或虚拟机参数,点 Quick create VirtualMachine 从模板创建虚拟机。
如果您需要自定义模板或虚拟机参数,请执行以下操作:
- 点 Customize VirtualMachine。Customize and create VirtualMachine 页面显示 Overview,YAML,Scheduling,Environment,Network interfaces,Disks,Scripts, 和 Metadata 选项卡。
-
点 Scripts 选项卡编辑虚拟机启动前必须设置的参数,如
Cloud-init、SSH key或Sysprep(仅限 Windows 虚拟机)。 - 可选:点 Start this virtualmachine after creation (Always) 复选框。
点 Create VirtualMachine。
VirtualMachine 详情页面会显示 provisioning 状态。
7.2.3. 使用 Web 控制台从自定义虚拟机模板中删除已弃用的设计 复制链接链接已复制到粘贴板!
在启动虚拟机前,您可以通过修改 VM 或模板参数(如数据源、cloud-init 或 SSH 密钥)来自定义现有虚拟机(VM)模板。如果您通过复制模板并包含其所有标签和注解,则部署新版本的 Scheduling、Scale 和 Performance (SSP) Operator 时,自定义模板将标记为已弃用。
您可以从自定义模板中删除已弃用的设计。
流程
-
在 web 控制台中进入到 Virtualization
Templates。 - 从虚拟机模板列表中,点标记为已弃用的模板。
- 点 Labels 旁边的铅笔图标旁的 Edit。
删除以下两个标签:
-
template.kubevirt.io/type: "base" -
template.kubevirt.io/version: "version"
-
- 点击 Save。
- 点现有 Annotations 数旁边的铅笔图标。
删除以下注解:
-
template.kubevirt.io/deprecated
-
- 点击 Save。
7.2.4. 在 web 控制台中创建自定义虚拟机模板 复制链接链接已复制到粘贴板!
您可以通过编辑 OpenShift Container Platform web 控制台中的 YAML 文件示例来创建虚拟机模板。
流程
-
在 web 控制台中,在侧边菜单中点 Virtualization
Templates。 -
可选:使用 Project 下拉菜单更改与新模板关联的项目。所有模板都默认保存到
openshift项目中。 - 点 Create Template。
- 通过编辑 YAML 文件来指定模板参数。
点 Create。
模板显示在 Templates 页面中。
- 可选:点 Download 下载并保存 YAML 文件。
7.2.5. 将模板添加到自定义命名空间中 复制链接链接已复制到粘贴板!
Scheduling、Scale 和 Performance (SSP) Operator 默认将虚拟机模板部署到 openshift 命名空间。要在自定义命名空间中发布这些模板,请在 HyperConverged 自定义资源(CR)中设置 commonTemplatesNamespace 字段。模板同步到自定义命名空间后,您可以修改或删除它们。
不要编辑 openshift 命名空间中的模板。SSP Operator 协调该命名空间并覆盖更改。
先决条件
-
安装 OpenShift CLI(
oc)。 - 以具有 cluster-admin 权限的用户身份登录。
流程
可选:如果不存在,创建自定义命名空间:
oc create namespace <custom_namespace>
$ oc create namespace <custom_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:查看
openshift命名空间中的模板列表:oc get templates -n openshift
$ oc get templates -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在默认编辑器中打开
HyperConvergedCR:oc edit hco -n openshift-cnv kubevirt-hyperconverged
$ oc edit hco -n openshift-cnv kubevirt-hyperconvergedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加
commonTemplatesNamespace字段并设置目标命名空间。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存并退出。SSP Operator 在自定义命名空间中创建或更新模板。
验证自定义命名空间中的模板:
oc get templates -n <custom_namespace>
$ oc get templates -n <custom_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.6. 从自定义命名空间中删除模板 复制链接链接已复制到粘贴板!
要从自定义命名空间中删除虚拟机模板,请从 HyperConverged 自定义资源(CR)中删除 commonTemplateNamespace 属性,并从那个自定义命名空间中删除每个模板。
流程
运行以下命令,在默认编辑器中编辑
HyperConvergedCR:oc edit hco -n openshift-cnv kubevirt-hyperconverged
$ oc edit hco -n openshift-cnv kubevirt-hyperconvergedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 删除
commonTemplateNamespace属性:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从
HyperConvergedCR 中删除的自定义命名空间中删除特定模板:oc delete templates -n <custom_namespace> <template_name>
$ oc delete templates -n <custom_namespace> <template_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证模板是否已从自定义命名空间中删除:
oc get templates -n <custom_namespace>
$ oc get templates -n <custom_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow