基于 ClusterClass 的集群的节点池配置

与使用其他 tanzu 命令相比,对使用 ClusterClass 定义的集群使用 tanzu cluster node-pool 命令时,行为存在差异。在针对基于 ClusterClass 的集群运行时,所有这些 API 的共同点是需要更新集群,尤其是集群拓扑。

tanzu cluster node-pool delete

tanzu cluster node-pool delete 命令是最直接的更改。此时将更新集群资源,以移除具有传递到删除 API 的节点池名称的计算机部署定义。API 仍禁止删除集群中的最终节点池。

tanzu cluster node-pool delete tkg-wc-vsphere -n md–0

tanzu cluster node-pool list

tanzu cluster node-pool list 命令将检索 MachineDeployment 资源,方法与基于计划的集群案例相同,并将这些资源与集群拓扑中的计算机部署进行匹配。这允许 tanzu cluster node-pool list 命令返回具有相同名称的 MachineDeployment 资源,以匹配集群拓扑中定义的计算机部署。

tanzu cluster node-pool list tkg-wc-vsphere
  NAME  NAMESPACE  PHASE      REPLICAS  READY  UPDATED  UNAVAILABLE
  md-0  default    Ready      1         1      1        0

基于 ClusterClass 的集群中节点池的属性

可以在基于 ClusterClass 的集群中的节点池上更新的属性可分为两种类型:

  • 计算机部署拓扑资源的直接属性(如副本计数),用于直接修改计算机部署的拓扑。
  • 变量替代,依赖于 ClusterClass 级别的变量定义。部署基于 ClusterClass 的集群时,集群定义必须指定许多这样的变量,默认情况下,这些变量会应用于所有计算机部署。计算机部署拓扑允许在计算机部署的基础上覆盖这些变量。

可以修改的属性的权威来源是 ClusterClass 对象本身。TKG ClusterClass 对象均定义了包含工作节点虚拟机属性的 worker 变量。这分别包括 AWS 和 Azure 的 instanceTypevmSize。vSphere 版本包括 diskGiBmemoryMiBnumCPU 的属性。具有主管的 TKG 为 vmClassstorageClass 定义了顶级变量,并为 nodePoolVolumes 定义了一个数组,用于自定义工作节点。vSphere 上的 TKG 还定义了 vcenter 变量,用于更新与 vCenter Server 实例相关的属性。

所有 TKG ClusterClass 对象定义一个 nodePoolLabels 变量,该变量指定要应用于工作节点上的节点标签。

重要

Tanzu CLI 提供的 node-pool 命令需要在 ClusterClass 上定义上述变量,以支持创建和更新节点池。如果使用自定义 ClusterClass,这些变量需要作为 ClusterClass 中的顶级变量定义。仍可以使用 Tanzu CLI 获取和删除基于自定义 ClusterClass 的集群上的节点池。在特殊情况下,tanzu cluster node-pool createtanzu cluster node-pool update 将适用于自定义 ClusterClass 对象,特别是,如果传递到 Tanzu CLI 的节点池定义最多指定 replicasaznameworkerClasstkrResolver 变量。在这种情况下,workerClass 必须与自定义 ClusterClass 中的 workerClass 定义匹配。

使用 tanzu cluster node-pool set 更新现有节点池

使用现有节点池的名称调用 tanzu cluster node-pool set 命令时,更新将仅修改已命名节点池的副本计数和标签(如果已提供)。将忽略提供的任何其他选项。特别是,如果提供了这些值,集群的拓扑将使用新的副本计数和 nodePoolLabels 变量覆盖进行更新。

使用 tanzu cluster node-pool set 创建一个新节点池

创建节点池可以遵循以下两个路径之一。您可以提供 tanzu cluster node-pool set 命令,用作新节点池起点的基础计算机部署。命名的基础计算机部署的深层副本充当用户提供的属性分层的基础。通常,这意味着复制的计算机部署的所有变量替代项都将使用您提供的新值进行更新。这与未提供基础计算机部署的情况不同。在这种情况下,将从集群拓扑中定义的全局变量定义复制变量替代项,然后在这些变量上对用户提供的值进行分层。此外,如果不提供基础计算机部署,则必须提供 workerClasstkrResolver 定义。TKG ClusterClass 对象默认定义一个 tkg-worker,除非您已添加自己的工作线程类定义,否则应使用。tkrResolvertkr-resolver 注释的值。

使用基础计算机部署创建新节点池

要使用基础计算机部署创建新的节点池,请运行以下命令:

tanzu cluster node-pool set tkg-wc-vsphere -f /path/to/node-pool.yml –-base-machine-deployment md-0

node-pool.yml 文件中包含以下内容:

name: np-1
replicas: 1
nodeMachineType: t3.large

在不使用基础计算机部署的情况下创建新节点池

在不使用基础计算机部署的情况下创建新节点池,运行以下命令:

tanzu cluster node-pool set tkg-wc-vsphere -f /path/to/node-pool.yml

node-pool.yml 文件中包含以下内容:

name: np-1
replicas: 1
nodeMachineType: t3.large
workerClass: tkg-worker
tkrResolver: os-name=ubuntu,os-arch=amd64
check-circle-line exclamation-circle-line close-line
Scroll to top icon