$ tar -xvf <virtctl-version-distribution.arch>.tar.gz
您可以使用virtctl
命令行工具管理 OpenShift Virtualization 资源。
您可以使用libguestfs
命令行工具访问和修改虚拟机 (VM) 磁盘镜像。您可以使用virtctl libguestfs
命令部署libguestfs
。
要在 Red Hat Enterprise Linux (RHEL) 9、Linux、Windows 和 MacOS 操作系统上安装virtctl
,请下载并安装virtctl
二进制文件。
要在 RHEL 8 上安装virtctl
,请启用 OpenShift Virtualization 存储库,然后安装kubevirt-virtctl
软件包。
您可以从 AWS 网页控制台上的 Red Hat OpenShift Service 下载适合您操作系统的virtctl
二进制文件,然后安装它。
在网页控制台中导航到**虚拟化 → 概述**页面。
单击**下载 virtctl**链接以下载适合您操作系统的virtctl
二进制文件。
安装virtctl
对于 RHEL 9 和其他 Linux 操作系统
解压缩存档文件
$ tar -xvf <virtctl-version-distribution.arch>.tar.gz
运行以下命令以使virtctl
二进制文件可执行
$ chmod +x <path/virtctl-file-name>
将virtctl
二进制文件移动到PATH
环境变量中的目录。
您可以通过运行以下命令来检查您的路径
$ echo $PATH
设置KUBECONFIG
环境变量
$ export KUBECONFIG=/home/<user>/clusters/current/auth/kubeconfig
对于 Windows
解压缩存档文件。
导航到解压后的文件夹层次结构,然后双击virtctl
可执行文件以安装客户端。
将virtctl
二进制文件移动到PATH
环境变量中的目录。
您可以通过运行以下命令来检查您的路径
C:\> path
对于 macOS
解压缩存档文件。
将virtctl
二进制文件移动到PATH
环境变量中的目录。
您可以通过运行以下命令来检查您的路径
echo $PATH
您可以通过启用 OpenShift Virtualization 存储库并安装kubevirt-virtctl
软件包,在 Red Hat Enterprise Linux (RHEL) 8 上安装virtctl
RPM 包。
集群中的每个主机都必须注册到 Red Hat Subscription Manager (RHSM),并拥有 AWS 上的 Red Hat OpenShift Service 的有效订阅。
使用subscription-manager
CLI 工具运行以下命令来启用 OpenShift Virtualization 存储库
# subscription-manager repos --enable cnv-4.17-for-rhel-8-x86_64-rpms
运行以下命令安装kubevirt-virtctl
软件包
# yum install kubevirt-virtctl
virtctl
客户端是一个用于管理 OpenShift Virtualization 资源的命令行实用程序。
除非另有说明,否则虚拟机 (VM) 命令也适用于虚拟机实例 (VMI)。 |
您可以使用virtctl
信息命令查看有关virtctl
客户端的信息。
命令 | 描述 |
---|---|
|
查看 |
|
查看 |
|
查看特定命令的选项列表。 |
|
查看任何 |
您可以使用virtctl
查看有关虚拟机 (VM) 和虚拟机实例 (VMI) 的信息。
命令 | 描述 |
---|---|
|
查看访客机器上可用的文件系统。 |
|
查看访客机器上操作系统的相关信息。 |
|
查看访客机器上已登录的用户。 |
您可以使用virtctl create
命令为虚拟机、实例类型和首选项创建清单。
命令 | 描述 |
---|---|
|
创建 |
|
创建 VM 清单,并为 VM 指定名称。 |
|
创建一个使用现有集群范围实例类型的 VM 清单。 |
|
创建一个使用现有命名空间实例类型的 VM 清单。 |
|
为集群范围实例类型创建一个清单。 |
|
为命名空间实例类型创建一个清单。 |
|
为集群范围的 VM 首选项创建一个清单,并为首选项指定一个名称。 |
|
为命名空间 VM 首选项创建一个清单。 |
您可以使用virtctl
虚拟机 (VM) 管理命令来管理和迁移虚拟机 (VM) 和虚拟机实例 (VMI)。
命令 | 描述 |
---|---|
|
启动虚拟机。 |
|
以暂停状态启动虚拟机。此选项允许您从 VNC 控制台中断启动过程。 |
|
停止虚拟机。 |
|
强制停止虚拟机。此选项可能会导致数据不一致或数据丢失。 |
|
暂停虚拟机。机器状态保存在内存中。 |
|
取消暂停虚拟机。 |
|
迁移虚拟机。 |
|
取消虚拟机迁移。 |
|
重启虚拟机。 |
使用virtctl
连接命令可以公开端口并连接到虚拟机 (VM) 和虚拟机实例 (VMI)。
命令 | 描述 |
---|---|
|
连接到虚拟机的串行控制台。 |
|
创建一个服务,转发虚拟机的指定端口,并在节点的指定端口上公开该服务。 示例: |
|
将文件从您的机器复制到虚拟机。此命令使用 SSH 密钥对的私钥。虚拟机必须配置公钥。 |
|
将文件从虚拟机复制到您的机器。此命令使用 SSH 密钥对的私钥。虚拟机必须配置公钥。 |
|
打开与虚拟机的 SSH 连接。此命令使用 SSH 密钥对的私钥。虚拟机必须配置公钥。 |
|
连接到虚拟机的 VNC 控制台。 您必须安装 |
|
显示端口号,并通过 VNC 连接使用任何查看器手动连接到虚拟机。 |
|
指定一个端口号,以便在该端口可用时在指定端口上运行代理。 如果没有指定端口号,则代理将在随机端口上运行。 |
使用virtctl vmexport
命令可以创建、下载或删除从虚拟机、虚拟机快照或持久卷声明 (PVC) 导出的卷。某些清单还包含一个 header secret,它允许访问端点以导入 OpenShift Virtualization 可用的格式的磁盘映像。
命令 | 描述 |
---|---|
|
创建一个
|
|
手动删除 |
|
下载在
可选
|
|
创建一个 |
|
检索现有导出的清单。清单不包含 header secret。 |
|
为虚拟机 example 创建虚拟机导出,并检索清单。清单不包含 header secret。 |
|
为虚拟机快照 example 创建虚拟机导出,并检索清单。清单不包含 header secret。 |
|
检索现有导出的清单。清单包含 header secret。 |
|
以 json 格式检索现有导出的清单。清单不包含 header secret。 |
|
检索现有导出的清单。清单包含 header secret 并将其写入指定的文件。 |
您可以使用virtctl memory-dump
命令将虚拟机内存转储输出到 PVC。您可以指定现有 PVC,也可以使用--create-claim
标志创建新的 PVC。
PVC 卷模式必须为FileSystem
。
PVC 必须足够大以容纳内存转储。
计算 PVC 大小的公式为(VMMemorySize + 100Mi) * FileSystemOverhead
,其中100Mi
是内存转储开销。
您必须通过运行以下命令在HyperConverged
自定义资源中启用热插拔功能网关
$ oc patch hyperconverged kubevirt-hyperconverged -n openshift-cnv \
--type json -p '[{"op": "add", "path": "/spec/featureGates", \
"value": "HotplugVolumes"}]'
您必须使用virtctl vmexport download
命令下载内存转储
$ virtctl vmexport download <vmexport_name> --vm|pvc=<object_name> \
--volume=<volume_name> --output=<output_file>
命令 | 描述 |
---|---|
|
将虚拟机的内存转储保存到 PVC。内存转储状态显示在 可选
|
|
使用相同的 PVC 重新运行 此命令会覆盖之前的内存转储。 |
|
删除内存转储。 如果要更改目标 PVC,则必须手动删除内存转储。 此命令删除虚拟机和 PVC 之间的关联,以便在 |
使用virtctl
可以向正在运行的虚拟机 (VM) 和虚拟机实例 (VMI) 添加或删除资源。
命令 | 描述 |
---|---|
|
热插拔数据卷或持久卷声明 (PVC)。 可选
|
|
热拔出虚拟磁盘。 |
|
热插拔 Linux 桥接网络接口。 |
|
热拔出 Linux 桥接网络接口。 |
您可以使用virtctl guestfs
命令部署一个包含libguestfs-tools
和附加持久卷声明 (PVC) 的交互式容器。
要部署包含libguestfs-tools
的容器,挂载 PVC 并连接 shell,请运行以下命令:
$ virtctl guestfs -n <namespace> <pvc_name> (1)
1 | PVC 名称是必需参数。如果不包含它,则会显示错误消息。 |
Libguestfs
工具可帮助您访问和修改虚拟机 (VM) 磁盘镜像。您可以使用libguestfs
工具查看和编辑客户机中的文件,克隆和构建虚拟机以及格式化和调整磁盘大小。
您还可以使用virtctl guestfs
命令及其子命令来修改、检查和调试 PVC 上的虚拟机磁盘。要查看可能的子命令的完整列表,请在命令行输入virt-
并按 Tab 键。例如:
命令 | 描述 |
---|---|
|
在您的终端中交互式编辑文件。 |
|
将 ssh 密钥注入客户机并创建登录。 |
|
查看虚拟机使用了多少磁盘空间。 |
|
通过创建包含完整列表的输出文件来查看客户机上安装的所有 RPM 的完整列表。 |
|
在您的终端中显示使用 |
|
密封虚拟机磁盘镜像以用作模板。 |
默认情况下,virtctl guestfs
会创建一个包含管理虚拟机磁盘所需的所有内容的会话。但是,如果您想自定义行为,该命令也支持多个标志选项。
标志选项 | 描述 |
---|---|
|
提供 |
带有 |
使用来自特定命名空间的 PVC。 如果不使用 如果不包含 |
|
列出 您可以使用 |
|
指示 默认情况下, 如果集群没有任何支持 如果未设置,则 |
|
显示 您还可以通过设置 |
该命令还会检查另一个 pod 是否正在使用 PVC,在这种情况下会显示错误消息。但是,一旦libguestfs-tools
进程启动,设置就无法避免新的 pod 使用相同的 PVC。在启动访问相同 PVC 的虚拟机之前,必须验证没有活动的virtctl guestfs
pod。
|
要使用 OpenShift Virtualization 的 Ansible 集合,请参阅Red Hat Ansible Automation Hub(Red Hat Hybrid Cloud Console)。