本快速入门介绍如何使用 Anthos VM Runtime 在 Anthos clusters on Bare Metal 上创建虚拟机 (VM)。Anthos VM Runtime 使用 KubeVirt 在集群上编排虚拟机,可让您在统一开发环境中处理基于虚拟机的应用和工作负载。
准备工作
如需完成本快速入门,您需要访问 Anthos clusters on Bare Metal 1.12 版 (anthosBareMetalVersion: 1.12
) 或更高版本。您可以使用任何能够运行工作负载的集群类型。如果需要,请在 Compute Engine 上试用 Anthos clusters on Bare Metal,或查看集群创建概览。
启用 Anthos VM Runtime
Anthos VM Runtime 会自动安装在 Anthos clusters on Bare Metal 1.10 版或更高版本上,但默认情况下处于停用状态。必须先启用 Anthos VM Runtime,然后才能在 Anthos clusters on Bare Metal 中运行虚拟机资源。
bmctl
Anthos clusters on Bare Metal 1.11 版或更高版本可以使用 bmctl
命令行工具:
如需启用运行时,请使用
bmctl
工具:bmctl enable vmruntime --kubeconfig KUBECONFIG_PATH
提供集群的 kubeconfig 文件的路径。创建集群时,Anthos clusters on Bare Metal 会在管理员工作站上生成 kubeconfig 文件。默认情况下,路径为
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
。如果 Anthos VM Runtime 已启用,则该命令会返回错误。
自定义资源
Anthos clusters on Bare Metal 1.10 版或更高版本可以使用自定义资源定义来启用 Anthos VM Runtime。此自定义资源是默认安装的。
修改
VMRuntime
自定义资源:kubectl edit vmruntime
在规范中设置
enabled:true
:apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: enabled: true # useEmulation defaults to "false" if not set. useEmulation: true # vmImageFormat defaults to "qcow2" if not set. vmImageFormat: qcow2
在前面的
spec
部分中,可以设置以下值:enabled
:设置为 true 可启用 Anthos VM RuntimeuseEmulation
:如果您的节点不支持硬件虚拟化,或您不确定,请将值设置为 true。如果适用,硬件虚拟化可提供比软件模拟更好的性能。如果未指定useEmulation
字段,则默认为false
。vmImageFormat
:支持两个磁盘映像格式值:raw
和qcow2
。如果未设置vmImageFormat
,Anthos VM Runtime 使用raw
磁盘映像格式来创建虚拟机。raw
格式可以提供比qcow2
(一种写入时复制格式)更高的性能,但可以使用更多磁盘。如需详细了解虚拟机的映像格式,请参阅 QEMU 文档中的磁盘映像文件格式。
在编辑器中保存自定义资源。
验证
VMRuntime
自定义资源是否已启用:kubectl describe vmruntime vmruntime
VMRuntime
自定义资源的详细信息包含Status
部分。当VMRuntime.Status.Ready
显示为true
时,Anthos VM Runtime 已启用且正常运行。
安装 virtctl
客户端工具
如需创建和管理虚拟机,请安装 virtctl 客户端工具。
以
kubectl
插件的形式安装virtctl
客户端工具:export GOOGLE_APPLICATION_CREDENTIALS="PATH_TO_SERVICE_ACCOUNT_KEY/bm-gcr.json" sudo -E bmctl install virtctl
这些凭据允许您对
virtctl
客户端工具进行身份验证并下载,然后在本地机器上安装/usr/bin/kubectl-virt
。验证
virtctl
插件是否已安装:kubectl plugin list
如果响应中列出了
kubectl-virt
,则表示插件已成功安装。如果未列出
kubectl-virt
,请检查上一个bmctl install
命令的输出中所注明的install-virtctl.log
文件,例如bmctl-workspace/log/install-virtctl-[date]/install-virtctl.log
。
创建虚拟机
在本快速入门中,您将使用 kubectl
CLI 来创建使用公共虚拟机映像和默认凭据的虚拟机。
在集群中创建虚拟机。
virtctl
插件与kubectl
命令结合使用:kubectl virt create vm VM_NAME \ --image ubuntu20.04 \ --configure-initial-password USERNAME:PASSWORD
此命令会创建一个 Ubuntu 20.04 虚拟机,默认 2 个 CPU、4Gi 内存和 ReadWriteOnce 模式的 20Gi 启动磁盘,使用 local-shared 存储类别。替换以下值:
VM_NAME
:虚拟机的名称。 虚拟机名称只能包含小写字母数字字符或“-”,以字母数字字符开头和结尾,并且最多包含 63 个字符。如需了解详情,请参阅 Kubernetes 文档中的 RFC 1123 标签名称。USERNAME
:要在虚拟机中创建的帐号的用户名。PASSWORD
:用户帐号的密码。
如果您收到有关 CLI 参数的错误消息,请确认您的集群是
1.11.1
或更高版本,以及您使用的是最新版本的virtctl
客户端工具。如需详细了解 CLI 错误,请参阅控制台日志。如需了解用户名和密码规则,请参阅客机操作系统 (OS) 的相关文档。如果某些功能未按预期运行,请检查 Anthos VM Runtime 已知问题。该虚拟机可能需要几分钟才能创建完成。使用
kubectl
命令检查虚拟机的状态:kubectl get gvm
以下示例输出显示了处于
Running
状态的虚拟机:NAME STATUS AGE IP vm-sample1 Running 64s 192.168.2.124
连接到虚拟机
虚拟机运行时,连接到虚拟机的控制台。
如需通过控制台访问虚拟机,请使用
kubectl
:kubectl virt console VM_NAME
出现提示时,输入您为创建虚拟机而指定的用户凭据。
成功连接到虚拟机的控制台后,退出虚拟机会话和控制台:
Ctrl + ]
清理
要清理本快速入门中创建的资源,请按照以下步骤操作。
如需删除虚拟机和关联的 DataVolume,请使用
kubectl
:kubectl virt delete vm VM_NAME --all
后续步骤
- 管理 Anthos clusters on Bare Metal 中虚拟机的电源状态。
- 在 Anthos clusters on Bare Metal 中修改虚拟机。
- 在 Anthos clusters on Bare Metal 中查看虚拟机控制台日志。