第 2 章 容器原生虚拟化用户指南
2.1. 创建虚拟机
使用以下其中一个流程来创建虚拟机:
- 运行虚拟机向导
- 使用虚拟机向导来粘贴预先配置的 YAML 文件
- 使用 CLI
- 使用虚拟机向导来导入 VMware 虚拟机或模板
2.1.1. 运行虚拟机向导来创建虚拟机
web 控制台具有一个交互式向导,指导您浏览 Basic Settings、Networking 和 Storage 屏幕,以简化虚拟机的创建流程。所有必填字段均标有 *
。填写完所有必填字段后,向导才会移至下一屏幕。
可创建 NIC 和存储磁盘,并在创建后将其附加到虚拟机。
Bootable Disk
如果在 Basic Settings 屏幕中将 URL
或 Container
选为 Provision Source,则会创建一个 rootdisk
磁盘,并将其作为 Bootable Disk 附加到虚拟机。您可修改 rootdisk
,但不可将其移除。
如果虚拟机上未附加任何磁盘,则从 PXE 源置备的虚拟机无需 Bootable Disk。如有一个或多个磁盘附加到虚拟机,您必须将其中一个选为 Bootable Disk。
先决条件
- 在使用向导创建虚拟机时,您的虚拟机存储介质必须支持 Read-Write-Many (RWM) PVC。
流程
-
从侧边菜单中选择 Workloads
Virtual Machines。 - 点击 Create Virtual Machine 并选择 Create with Wizard。
- 填写所有必填 Basic Settings。选择一个 Template 来自动填写这些字段。
点击 Next 进入 Networking 屏幕。默认附加
nic0
NIC。- (可选)点击 Create NIC 创建额外 NIC。
- (可选)您可通过点击 ⋮ 按钮并选择 Remove NIC 来移除任何或所有 NIC。虚拟机无需附加 NIC 也可创建。可在创建虚拟机之后创建 NIC。
点击 Next 进入 Storage 屏幕。
- (可选)点击 Create Disk 创建额外磁盘。可通过点击 ⋮ 按钮并选择 Remove Disk 来移除这些磁盘。
- (可选)点击磁盘修改可用字段。点击 ✓ 按钮保存更新。
- (可选)点击 Attach Disk,从 Select Storage 下拉列表中选择可用磁盘。
- 点击 Create Virtual Machine >。Results 屏幕显示虚拟机的 JSON 配置文件。
虚拟机列于 Workloads
运行 web 控制台向导时,请参考虚拟机向导字段部分。
2.1.1.1. 虚拟机向导字段
名称 | 参数 | 描述 |
---|---|---|
名称 |
名称可包含小写字母 ( | |
描述 | 可选的描述字段。 | |
Template | 从中创建虚拟机的模板。选择一个模板将自动填写其他字段。 | |
Provision Source | PXE | 从 PXE 菜单置备虚拟机。集群中需要支持 PXE 的 NIC。 |
URL | 从由 HTTP 或 S3 端点提供的镜像置备虚拟机。 | |
Container |
从可通过集群访问的注册表中的可启动操作系统容器置备虚拟机。示例: | |
Cloned Disk | 置备源是一个克隆的磁盘。 | |
Import | 从所支持的提供程序导入虚拟机。 | |
Operating System |
集群中可用操作系统列表。这是虚拟机的主要操作系统。如果将 | |
Flavor | small、medium、large、tiny、Custom | 预设值,用于决定分配给虚拟机的 CPU 和内存量。 |
Workload Profile | desktop | 用于桌面的虚拟机配置。 |
generic | 可平衡各种工作负载的性能和兼容性的虚拟机配置。 | |
high performance | 针对高性能负载进行了优化的虚拟机配置。 | |
Start virtual machine on creation | 选择此项可在创建时自动启动虚拟机。 | |
Use cloud-init | 选择此项可启用 cloud-init 字段。 |
2.1.1.2. Cloud-init 字段
名称 | 描述 |
---|---|
Hostname | 为虚拟机设置具体主机名。 |
Authenticated SSH Keys | 复制到虚拟机上 ~/.ssh/authorized_keys 的用户公钥。 |
Use custom script | 将其他选项替换为您粘贴自定义 cloud-init 脚本的字段。 |
2.1.1.3. 网络字段
名称 | 描述 |
---|---|
Create NIC | 为虚拟机创建新 NIC。 |
NIC NAME | NIC 的名称。 |
MAC ADDRESS | 网络接口的 MAC 地址。如果未指定 MAC 地址,将为会话生成一个临时地址。 |
NETWORK CONFIGURATION | 可用 NetworkAttachmentDefinition 对象列表。 |
BINDING METHOD |
可用绑定方法列表。对于默认的 Pod 网络, |
PXE NIC |
支持 PXE 的网络列表。只有在将 |
2.1.1.4. 存储字段
名称 | 描述 |
---|---|
Create Disk | 为虚拟机创建新磁盘。 |
Attach Disk | 从可用 PVC 列表中选择一个现有磁盘,以附加到虚拟机。 |
DISK NAME |
磁盘的名称。名称可包含小写字母 ( |
SIZE (GB) | 磁盘大小(以 GB 为单位)。 |
STORAGE CLASS |
底层 |
Bootable Disk |
虚拟机将从中启动的可用磁盘列表。如果虚拟机的 Provision Source 为 |
2.1.2. 粘贴至预先配置的 YAML 文件中以创建虚拟机
通过在 web 控制台的 Workloads example
虚拟机配置。
如果您点击 Create 时 YAML 配置无效,则错误消息会指示出错的参数。一次仅显示一个错误。
编辑时离开 YAML 屏幕会取消您对配置做出的任何更改。
流程
-
从侧边菜单中选择 Workloads
Virtual Machines。 - 点击 Create Virtual Machine 并选择 Create from YAML。
在可编辑窗口写入或粘贴您的虚拟机配置。
-
或者,使用 YAML 屏幕中默认提供的
example
虚拟机。
-
或者,使用 YAML 屏幕中默认提供的
- (可选)点击 Download 以下载当前状态下的 YAML 配置文件。
- 点击 Create 以创建虚拟机。
虚拟机列于 Workloads
2.1.3. 使用 CLI 创建虚拟机
流程
VirtualMachine 配置文件的 spec
对象会引用虚拟机设置,如内核数、内存量、磁盘类型以及要使用的卷。
-
通过引用相关 PVC
claimName
作为卷,将虚拟机磁盘附加到虚拟机。 要利用 OpenShift Container Platform 客户端创建虚拟机,请运行此命令:
$ oc create -f <vm.yaml>
- 由于虚拟机创建时处于 Stopped 状态,因此需启动虚拟机来运行虚拟机实例。
ReplicaSet 的目的通常是用于保证有指定数量的相同 Pod 可用。容器原生虚拟化当前不支持 ReplicaSet。
设置 | 描述 |
---|---|
内核 | 虚拟机中的内核数。必须大于或等于 1。 |
内存 | 按节点分配给虚拟机的 RAM 量。指定一个值,以 M(兆字节)或 Gi(千兆字节)为单位。 |
磁盘:名称 | 所引用卷的名称。必须与卷的名称匹配。 |
设置 | 描述 |
---|---|
名称 | 卷的名称,必须是 DNS 标签,且在虚拟机中唯一。 |
PersistentVolumeClaim |
附加到虚拟机的 PVC。PVC 的 |
2.1.4. 虚拟机存储卷类型
虚拟机存储卷类型以及域和卷设置均已列出。有关虚拟机设置的确定性列表,请参阅 kubevirt API 引用。
ephemeral | 将网络卷用作只读后备存储的本地写时复制 (COW) 镜像。后备卷必须为 PersistentVolumeClaim。当虚拟机启动并在本地存储所有写入数据时,便会创建临时镜像。当虚拟机停止、重启或删除时,便会丢弃临时镜像。其底层的卷 (PVC) 不会以任何方式发生变化。 |
persistentVolumeClaim | 将可用 PV 附加到虚拟机。附加 PV 可确保虚拟机数据在会话之间保持。 将现有虚拟机导入到 OpenShift Container Platform 中的建议方法是,使用 CDI 将现有虚拟机磁盘导入到 PVC 中,然后将 PVC 附加到虚拟机实例。在 PVC 中使用磁盘需要满足一些要求。 |
dataVolume | 通过导入、克隆或上传操作来管理虚拟机磁盘的准备过程,以此在 persistentVolumeClaim 磁盘类型基础上构建 DataVolume。使用此卷类型的虚拟机可保证在卷就绪前不会启动。 |
cloudInitNoCloud | 附加包含所引用的 cloud-init NoCloud 数据源的磁盘,从而向虚拟机提供用户数据和元数据。虚拟机磁盘内部需要安装 cloud-init。 |
containerDisk | 引用容器镜像 registry 中存储的镜像,如虚拟机磁盘。该镜像拉取自 registry,在创建虚拟机时嵌入卷中。containerDisk 卷为临时卷,将在虚拟机停止、重启或删除时丢弃。 容器磁盘不限于单个虚拟机,对于创建大量无需持久性存储的虚拟机克隆来说非常有用。 容器镜像 registry 仅支持 RAW 和 QCOW2 格式的磁盘类型。建议使用 QCOW2 格式以减小镜像的大小。 |
emptyDisk | 创建额外的稀疏 QCOW2 磁盘,与虚拟机接口的生命周期相关联。当虚拟机中的客户端初始化重启后,数据保留下来,但当虚拟机停止或从 web 控制台重启时,数据将被丢弃。空磁盘用于存储应用程序依赖项和数据,否则这些依赖项和数据会超出临时磁盘有限的临时文件系统。 此外还必须提供磁盘容量大小。 |
有关虚拟机设置的确定性列表,请参阅 kubevirt API 引用。