4.3 使用 NdbClusterPodSpec

NDB 集群自定义资源定义提供 NdbClusterPodSpec 结构,用于使用其各自的 .spec.managementNode.ndbPodSpec.spec.dataNode.ndbPodSpec.spec.mysqlNode.ndbPodSpec 字段定义单个管理节点、数据节点和 SQL 节点的 Pod 规范。为这些 NdbPodSpec 字段设置的值将复制到其各自的 StatefulSet 定义中。本章介绍如何使用这些 NdbClusterPodSpec 字段将 Pod 分配给特定的工作节点、定义关联规则以及指定 Pod 资源需求。

将 NDB 节点 Pod 分配给工作节点 Pod。 您可以通过在 nodeSelector 字段中指定工作节点的标签来指定应在哪个工作节点上调度给定的 NDB 集群节点。

有关更多信息,请参阅 将 Pod 分配给节点

关联和反关联。 可以使用 affinity 字段定义 NDB 集群节点的关联和反关联规则。Kubernetes 集群使用这些规则来决定在何处调度 NDB 集群 Pod。在根据任何指定的 nodeSelector 标签过滤掉可用的工作节点池之后,将应用这些规则。

NDB Operator 为三种 MySQL 集群节点类型(ndb_mgmdndbmtdmysqld)中的每一种定义了默认的反关联规则,以防止它们尽可能被调度到同一个工作节点上。此类规则始终定义为 preferredDuringSchedulingIgnoredDuringExecution,因此只有在资源充足的情况下,Kubernetes 调度程序才会满足该规则。例如,如果必须在四个工作节点上调度四个数据节点,则每个数据节点都调度在一个单独的工作节点上,但如果必须在四个工作节点上调度六个数据节点,则前四个数据节点调度在四个单独的工作节点上,而第五个和第六个数据节点必须调度在已运行数据节点的工作节点上。可以通过在 affinity 字段中指定所需的反关联规则来覆盖默认的反关联规则。

有关更多信息,请参阅 关联和反关联

指定资源需求。 可以使用 resources 字段指定 Pod 资源需求。这些需求将复制到容器定义中。

NDB Operator 根据 NDB 集群的配置为数据节点定义默认内存需求。NDB Operator 为此目的计算的最小值是一个估计值,可以通过使用数据节点的 ndbPodSpec 指定替代值来覆盖。

有关更多信息,请参阅 Pod 和容器的资源管理