7.2.2. 使用 CLI 从网页上的镜像创建虚拟机
您可以使用命令行从网页中的镜像创建虚拟机 (VM)。
创建虚拟机时,具有镜像的数据卷将导入到持久性存储中。
先决条件
- 您必须有包含镜像的网页的访问凭证。
-
已安装
virtctlCLI。 -
已安装 OpenShift CLI(
oc)。
流程
为虚拟机创建
VirtualMachine清单,并将它保存为 YAML 文件。例如,要从网页上的镜像创建最小 Red Hat Enterprise Linux (RHEL) 虚拟机,请运行以下命令:$ virtctl create vm --name vm-rhel-9 --instancetype u1.small --preference rhel.9 --volume-import type:http,url:https://example.com/rhel9.qcow2,size:10Gi查看虚拟机的
VirtualMachine清单:apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: vm-rhel-9 spec: dataVolumeTemplates: - metadata: name: imported-volume-6dcpf spec: source: http: url: https://example.com/rhel9.qcow2 storage: resources: requests: storage: 10Gi instancetype: name: u1.small preference: name: rhel.9 runStrategy: Always template: spec: domain: devices: {} resources: {} terminationGracePeriodSeconds: 180 volumes: - dataVolume: name: imported-volume-6dcpf name: imported-volume-6dcpf-
metadata.name定义虚拟机名称。 -
spec.dataVolumeTemplates.metadata.name定义数据卷名称。 -
spec.dataVolumeTemplates.spec.source.http.url定义镜像的 URL。 -
spec.dataVolumeTemplates.spec.storage.resources.requests.storage定义为数据卷请求的存储的大小。 -
spec.instancetype.name定义用来控制虚拟机资源大小的实例类型。 -
spec.preference.name定义要使用的首选项。
-
运行以下命令来创建虚拟机:
$ oc create -f <vm_manifest_file>.yamloc create命令创建数据卷和虚拟机。CDI 控制器创建一个带有正确注解和导入过程的底层 PVC。导入完成后,数据卷状态变为Succeeded。您可以启动虚拟机。数据卷置备在后台进行,因此无需监控进程。
验证
importer pod 从指定的 URL 下载镜像,并将其存储在置备的持久性卷上。查看 importer pod 的状态:
$ oc get pods监控数据卷的状态:
$ oc get dv <data_volume_name>如果置备成功,数据卷阶段为
Succeeded。输出示例:
NAME PHASE PROGRESS RESTARTS AGE imported-volume-6dcpf Succeeded 100.0% 18s通过访问其串行控制台来验证置备是否已完成,以及虚拟机是否已启动:
$ virtctl console <vm_name>如果虚拟机正在运行且串行控制台可以访问,输出如下所示:
Successfully connected to vm-rhel-9 console. The escape sequence is ^]