要确定 Tanzu Kubernetes 集群节点的大小,请指定虚拟机类。vSphere with Tanzu 提供了默认类,您也可以创建自己的类。要使用类,请将其与目标 vSphere 命名空间 关联并在清单中引用此类。

关于虚拟机类

虚拟机类是对虚拟机 (VM) 处理能力(包括 CPU 和内存 (RAM))的资源预留请求。例如,名为“guaranteed-large”的虚拟机类类型预留 4 个 CPU 和 16 GB RAM。有关默认虚拟机类及其对应的 CPU 和 RAM 预留列表,请参见 默认虚拟机类
注: 虚拟机磁盘大小通过 OVA 模板设置,而不是通过虚拟机类定义设置。对于 Tanzu Kubernetes 版本,磁盘大小为 16 GB。请参见 关于 Tanzu Kubernetes 版本 分发版
虚拟机类有两种预留类型:保证和最大努力。保证类完全预留其配置的资源。这意味着,对于给定集群, spec.policies.resources.requestsspec.hardware 设置相匹配。最大努力类允许超额分配资源。对于生产工作负载,建议使用保证虚拟机类类型。
警告: 由于最大努力虚拟机类类型允许超额分配资源,因此,如果对要置备 Tanzu Kubernetes 集群的 vSphere 命名空间设置了限制,资源可能会耗尽。如果发生争用并且控制平面受到影响,集群可能会停止运行。因此,应始终对生产集群使用保证虚拟机类类型。如果无法对所有生产节点使用保证虚拟机类类型,则应至少对控制平面节点使用保证虚拟机类。

使用虚拟机类

要在 Tanzu Kubernetes 集群中使用虚拟机类,该虚拟机类必须绑定到置备此集群的 vSphere 命名空间。为此,需要将类与目标命名空间关联。请参见为 Tanzu Kubernetes 版本配置 vSphere 命名空间

要列出目标 vSphere 命名空间 中可用的虚拟机类,请使用命令 kubectl get virtualmachineclassbinding。要查看 主管集群 上存在的所有虚拟机类,请运行命令 kubectl describe virtualmachineclasses。但是请注意,由于只能使用绑定类置备集群,因此后一个命令仅供参考。请参见 使用 TKGS v1alpha2 API 置备 Tanzu Kubernetes 集群的工作流
注: 将虚拟机类与 vSphere 命名空间 关联的要求仅适用于新集群。使用默认虚拟机类的现有 Tanzu Kubernetes 集群继续运行,而无需命名空间关联。

默认虚拟机类

默认虚拟机类列出了用作 Tanzu Kubernetes 集群节点部署大小的默认虚拟机类类型。

为避免资源超额分配,生产工作负载应使用保证的类类型。为避免内存不足,请勿将小型或超小型类大小用于在任何环境中部署工作负载的任何工作节点(开发、测试或生产)。

表 1. 默认虚拟机类
CPU 内存 (GB) 预留的 CPU 和内存
guaranteed-8xlarge 32 128
best-effort-8xlarge 32 128
guaranteed-4xlarge 16 128
best-effort-4xlarge 16 128
guaranteed-2xlarge 8 64
best-effort-2xlarge 8 64
guaranteed-xlarge 4 32
best-effort-xlarge 4 32
guaranteed-large 4 16
best-effort-large 4 16
guaranteed-medium 2 8
best-effort-medium 2 8
guaranteed-small 2 4
best-effort-small 2 4
guaranteed-xsmall 2 2
best-effort-xsmall 2 2

自定义虚拟机类

vSphere with Tanzu 支持在 Tanzu Kubernetes 集群中使用自定义虚拟机类。定义自定义虚拟机类后,必须先将其与目标 vSphere 命名空间 关联,然后才能在集群中使用。请参见在 vSphere with Tanzu 中创建虚拟机类

编辑虚拟机类

虚拟机类定义不可改变。任何虚拟机类都可以 编辑,包括 默认虚拟机类定义。如果编辑虚拟机类,则现有 Tanzu Kubernetes 集群节点不受影响。新 Tanzu Kubernetes 集群将使用修改后的类定义。
小心: 如果编辑 Tanzu Kubernetes 集群正在使用的虚拟机类,然后横向扩展该集群,则新节点将使用编辑后的类定义,但现有节点将使用初始类定义,从而导致类不匹配。