第 7 章 创建虚拟机
7.1. 使用 CLI 创建虚拟机 复制链接链接已复制到粘贴板!
您可以通过编辑或创建 VirtualMachine 清单来从命令行创建虚拟机 (VM)。您可以使用虚拟机清单中的实例类型来简化虚拟机配置。
您还可以使用 OpenShift Container Platform Web 控制台从实例类型创建虚拟机。
7.1.1. 从 VirtualMachine 清单创建虚拟机 复制链接链接已复制到粘贴板!
您可以从 VirtualMachine 清单创建虚拟机(VM)。要简化这些清单的创建,您可以使用 virtctl 命令行工具。
先决条件
-
已安装
virtctlCLI。 -
已安装 OpenShift CLI(
oc)。
流程
为虚拟机创建
VirtualMachine清单,并将它保存为 YAML 文件。例如,要创建最小 Red Hat Enterprise Linux (RHEL) 虚拟机,请运行以下命令:$ virtctl create vm --name rhel-9-minimal --volume-import type:ds,src:openshift-virtualization-os-images/rhel9查看虚拟机的
VirtualMachine清单:注意这个示例清单没有配置虚拟机身份验证。
RHEL 虚拟机的清单示例
apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: rhel-9-minimal spec: dataVolumeTemplates: - metadata: name: imported-volume-mk4lj spec: sourceRef: kind: DataSource name: rhel9 namespace: openshift-virtualization-os-images storage: resources: {} instancetype: inferFromVolume: imported-volume-mk4lj inferFromVolumeFailurePolicy: Ignore preference: inferFromVolume: imported-volume-mk4lj inferFromVolumeFailurePolicy: Ignore runStrategy: Always template: spec: domain: devices: video: type: virtio memory: guest: 512Mi resources: {} terminationGracePeriodSeconds: 180 volumes: - dataVolume: name: imported-volume-mk4lj name: imported-volume-mk4lj-
名称 :rhel-9-minimal指定虚拟机的名称。 -
名称 :rhel9在sourceRef部分中指定客户端操作系统的引导源。 -
Namespace: openshift-virtualization-os-images指定引导源的命名空间。金级镜像存储在openshift-virtualization-os-images命名空间中。 -
instanceType: inferFromVolume: imported-volume-mk4lj指定来自所选DataSource对象的实例类型。 -
preference: inferFromVolume: imported-volume-mk4lj指定首选项从所选的DataSource对象中推断出来。 -
type:virtio指定使用自定义视频设备(本例中为 VirtIO 设备)来启用硬件图形加速。为 OpenShift Virtualization 4.21 启用自定义视频设备是技术预览。
-
使用清单文件创建虚拟机:
$ oc create -f <vm_manifest_file>.yaml可选:启动虚拟机:
$ virtctl start <vm_name>
7.1.2. 使用 CLI 上传虚拟机镜像 复制链接链接已复制到粘贴板!
您可使用 virtctl 命令行工具上传操作系统镜像。您可以使用现有数据卷,或为镜像创建新数据卷。
先决条件
-
您必须有一个
ISO、IMG或QCOW2操作系统镜像文件。 -
为获得最佳性能,请使用 virt-sparsify 工具或
xz或gzip工具压缩镜像文件。 - 客户端机器必须配置为信任 OpenShift Container Platform 路由器的证书。
-
已安装
virtctlCLI。 -
已安装 OpenShift CLI(
oc)。
流程
运行
virtctl image-upload命令上传镜像:$ virtctl image-upload dv <datavolume_name> \ --size=<datavolume_size> \ --image-path=</path/to/image><datavolume_name>- 数据卷的名称。
<datavolume_size>-
数据卷的大小。例如:
--size=500Mi,--size=1G </path/to/image>镜像的文件路径。
注意-
如果您不想创建新数据卷,请省略
--size参数,并包含--no-create标志。 - 将磁盘镜像上传到 PVC 时,PVC 大小必须大于未压缩的虚拟磁盘的大小。
-
若要在使用 HTTPS 时允许不安全的服务器连接,请使用
--insecure参数。当您使用--insecure标志时,不会验证上传端点的真实性。
-
如果您不想创建新数据卷,请省略
可选。要验证数据卷是否已创建,运行以下命令来查看所有数据卷:
$ oc get dvs
7.1.2.1. 支持的自定义视频设备类型 复制链接链接已复制到粘贴板!
在创建虚拟机(VM)时,您可以配置自定义视频设备类型来覆盖默认的视频配置。
通过配置自定义的视频设备,您可以根据客户机操作系统要求和性能需求指定不同的视频设备。
自定义视频设备支持只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
使用自定义视频设备提供了以下优点:
- 性能
- 某些视频设备的性能要优于默认配置。例如,Virt VirtIO 是 AMD/x86_64 架构上比传统 VGA 更有效的视频设备。
- 解决方案灵活性
- 使用一些视频设备类型,您可以设置自定义显示分辨率。
- 内存效率
- 某些视频类型对于无外设操作或仅控制台操作是更高的内存效率。
您可以配置以下视频设备类型:
-
VirtIO:通过将任务卸载到主机,提供改进的性能,以及硬件加速的视频解码和编码。建议对于具有可用
VirtIO驱动程序的现代客户机操作系统使用。 - VGA:模拟视频显示的标准(在带有 BIOS 的 AMD/x86_64 中默认)。
- bochs:模拟图形适配器,为客户机操作系统提供简单接口来管理显示设置(在带有 EFI 的 AMD/x86_64 中默认)。
- Cirrus:一个提供稳定视频输出的传统视频设备。
- ramfb:一种简单、不准确的虚拟显示设备,主要用于 QEMU 模拟器,对 ARM 架构很有用。
| 架构 | 引导模式 | 默认类型 | 支持的类型 |
|---|---|---|---|
| AMD/x86_64 | BIOS |
|
|
| AMD/x86_64 | EFI |
|
|
| ARM64 | BIOS/EFI |
|
|
| s390x | BIOS/EFI |
|
|