要确定 TKG 服务 集群节点的大小,请指定虚拟机 (VM) 类。平台提供了默认虚拟机类,您也可以创建自己的类。要使用虚拟机类,请将其与目标 vSphere 命名空间 关联并在集群清单中引用此类。
关于虚拟机类
虚拟机 (VM) 类是对虚拟机 (VM) 处理能力(包括 CPU 和内存 (RAM))的资源预留请求。例如,名为“guaranteed-large”的虚拟机类类型预留 4 个 CPU 和 16 GB RAM。
注: 虚拟机磁盘大小通过 OVA 模板设置,而不是通过虚拟机类定义设置。对于
Tanzu Kubernetes 版本,磁盘大小为 16 GB。
虚拟机类有两种预留类型:保证和最大努力。保证类完全预留其配置的资源。这意味着,对于给定集群,
spec.policies.resources.requests
与
spec.hardware
设置相匹配。最大努力类允许超额分配资源。对于生产工作负载,建议使用保证虚拟机类类型。
警告: 由于最大努力虚拟机类类型允许超额分配资源,因此,如果对部署 TKG 集群的
vSphere 命名空间 设置了限制,资源可能会耗尽。如果发生争用并且控制平面受到影响,集群可能会停止运行。因此,请对生产集群使用保证虚拟机类类型。如果无法对所有生产节点使用保证虚拟机类类型,则至少对控制平面节点使用保证虚拟机类。
对 TKG 服务 集群使用虚拟机类
要对 TKG Service 集群使用虚拟机类,该虚拟机类必须绑定到置备此集群的 vSphere 命名空间。为此,需要将类与目标命名空间关联。请参见为 TKG 服务 集群配置 vSphere 命名空间。
要列出目标
vSphere 命名空间 中可用的虚拟机类,请使用命令
kubectl get virtualmachineclass
。
注: 如果在执行此命令时遇到问题,请参见
对虚拟机类错误进行故障排除。
虚拟机类定义并非一成不变。任何虚拟机类都可以进行编辑,包括
默认虚拟机类定义。如果编辑了虚拟机类,现有 TKG 集群节点将不受影响。新的 TKG 集群使用修改后的类。
小心: 如果编辑 TKG 集群正在使用的虚拟机类,然后横向扩展该集群,则新节点将使用编辑后的类定义,但现有节点将使用初始类定义,从而导致类不匹配。
默认虚拟机类
下表列出了用作 Tanzu Kubernetes 集群节点部署大小的默认虚拟机类类型。
为避免资源超额分配,生产工作负载应使用保证的类类型。为避免内存不足,请勿将小型或超小型类大小用于在任何环境中部署工作负载的任何工作节点(开发、测试或生产)。
类 | 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 IaaS control plane 支持在 TKG Service 集群中使用自定义虚拟机类。定义自定义虚拟机类后,必须先将其与目标 vSphere 命名空间 关联,然后才能在集群中使用。有关详细信息,请参阅虚拟机服务文档。