本文档适用于运行 Anthos clusters on Bare Metal 的应用所有者和平台管理员。本文档介绍在创建使用 Anthos VM Runtime 的虚拟机时如何创建和使用虚拟机类型或者手动指定 CPU 和内存资源。
准备工作
要完成本文档,您需要拥有以下资源的访问权限:
- 访问 Anthos clusters on Bare Metal 1.12.0 版 (
anthosBareMetalVersion: 1.12.0
) 或更高版本集群。您可以使用任何能够运行工作负载的集群类型。如果需要,请在 Compute Engine 上试用 Anthos clusters on Bare Metal,或查看集群创建概览。 - 作为
kubectl
的插件安装的virtctl
客户端工具。如果需要,请安装 virtctl 客户端工具。
创建虚拟机
创建虚拟机时,您可以手动指定 CPU 和内存要求。此功能可让您创建具有适当计算资源的虚拟机以满足您的应用需求。
如需创建虚拟机并手动指定 CPU 和内存要求,请按照以下步骤操作。
CLI
清单
在您选择的编辑器中创建
VirtualMachine
清单,例如 my-custom-vm.yaml:nano my-custom-vm.yaml
复制并粘贴以下 YAML 清单:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: compute: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true
在此 YAML 文件中,定义以下设置:
VM_NAME
:您的虚拟机的名称。如需详细了解名称限制条件,请参阅对象名称和 ID。VCPU_NUMBER
:要分配给虚拟机的 vCPU 数量。- 您可以为虚拟机分配 1 到 96 个 vCPU。
MEMORY_SIZE
:要分配给虚拟机的内存量。- 您可以为虚拟机分配 1M 到 1T 的内存。如需了解详情,请参阅内存资源单元。
虚拟机将
eth0
连接到默认的pod-network
网络。名为
VM_NAME-boot-dv
的启动磁盘必须已存在。如需了解详情,请参阅创建和管理虚拟磁盘。在编辑器中保存并关闭虚拟机清单。
使用
kubectl
创建虚拟机:kubectl apply -f my-custom-vm.yaml
创建和使用虚拟机类型
启用 Anthos VM Runtime 时,新的 VirtualMachineType 自定义资源定义可用。此定义用于指定虚拟机的 CPU 和内存资源。您可以为所需的不同工作负载创建虚拟机类型,并根据这些类型将一组一致的计算资源应用于虚拟机。
如果 Anthos clusters on Bare Metal 启用了 Anthos VM Runtime,vm-controller-manager
会安装预定义的虚拟机类型。以下定义显示了默认的 example-machinetype
虚拟机类型:
apiVersion: vm.cluster.gke.io/v1
kind: VirtualMachineType
metadata:
name: "example-machinetype"
labels:
vm.cluster.gke.io/predefined-machinetype: "true"
spec:
cpu:
vcpus: 2
memory:
capacity: 4G
您无法更新此预定义虚拟机类型。每次启动或重启 vm-controller-manager
时,如果集群中不存在此预定义的虚拟机类型(比方说,您删除了虚拟机类型),则会重新安装此预定义的虚拟机类型。
创建虚拟机类型
您可以创建自己的虚拟机类型,以满足工作负载的计算需求。
在您选择的编辑器中创建
VirtualMachineType
清单,例如 my-vm-type.yaml:nano my-vm-type.yaml
复制并粘贴以下 YAML 清单:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: my-vm-type spec: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE
在此虚拟机类型中,您可以定义以下设置:
在编辑器中保存并关闭虚拟机类型清单。
使用
kubectl
创建虚拟机类型:kubectl apply -f my-vm-type.yaml
使用虚拟机类型创建虚拟机
在 VirtualMachine
清单中指定虚拟机类型,以将预定义的 compute
设置应用于您的虚拟机。
在您选择的编辑器中创建
VirtualMachine
清单,例如 my-custom-vm.yaml。nano my-custom-vm.yaml
复制并粘贴以下 YAML 清单:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: compute: virtualMachineTypeName: my-vm-type interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true
在此 YAML 文件中,指定您在上一部分创建的自定义虚拟机类型的名称(例如
my-vm-type
)作为virtualMachineTypeName
的值。虚拟机将
eth0
连接到默认的pod-network
网络。名为
VM_NAME-boot-dv
的启动磁盘必须已存在。如需了解详情,请参阅创建和管理虚拟磁盘。在编辑器中保存并关闭虚拟机清单。
使用
kubectl
创建虚拟机:kubectl apply -f my-custom-vm.yaml