第 7 章 创建虚拟机


7.1. 使用 CLI 创建虚拟机

您可以通过编辑或创建 VirtualMachine 清单来从命令行创建虚拟机 (VM)。您可以使用虚拟机清单中的实例类型来简化虚拟机配置。

注意

您还可以使用 OpenShift Container Platform Web 控制台从实例类型创建虚拟机。

7.1.1. 从 VirtualMachine 清单创建虚拟机

您可以从 VirtualMachine 清单创建虚拟机(VM)。要简化这些清单的创建,您可以使用 virtctl 命令行工具。

先决条件

  • 已安装 virtctl CLI。
  • 已安装 OpenShift CLI(oc)。

流程

  1. 为虚拟机创建 VirtualMachine 清单,并将它保存为 YAML 文件。例如,要创建最小 Red Hat Enterprise Linux (RHEL) 虚拟机,请运行以下命令:

    $ virtctl create vm --name rhel-9-minimal --volume-import type:ds,src:openshift-virtualization-os-images/rhel9
  2. 查看虚拟机的 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 指定虚拟机的名称。
    • 名称 :rhel9sourceRef 部分中指定客户端操作系统的引导源。
    • 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 启用自定义视频设备是技术预览。
  3. 使用清单文件创建虚拟机:

    $ oc create -f <vm_manifest_file>.yaml
  4. 可选:启动虚拟机:

    $ virtctl start <vm_name>

7.1.2. 使用 CLI 上传虚拟机镜像

您可使用 virtctl 命令行工具上传操作系统镜像。您可以使用现有数据卷,或为镜像创建新数据卷。

先决条件

  • 您必须有一个 ISOIMGQCOW2 操作系统镜像文件。
  • 为获得最佳性能,请使用 virt-sparsify 工具或 xzgzip 工具压缩镜像文件。
  • 客户端机器必须配置为信任 OpenShift Container Platform 路由器的证书。
  • 已安装 virtctl CLI。
  • 已安装 OpenShift CLI(oc)。

流程

  1. 运行 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 标志时,不会验证上传端点的真实性。
  2. 可选。要验证数据卷是否已创建,运行以下命令来查看所有数据卷:

    $ 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 架构很有用。
Expand
表 7.1. 按构架进行视频设备支持
架构引导模式默认类型支持的类型

AMD/x86_64

BIOS

vga

VirtIO,vga,bochs,cirrus,ramfb'

AMD/x86_64

EFI

bochs

VirtIO,vga,bochs,cirrus,ramfb'

ARM64

BIOS/EFI

virtio

VirtIO,ramfb

s390x

BIOS/EFI

virtio

virtio

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部