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_mgmd、ndbmtd 和 mysqld)中的每一种定义默认的反关联性规则,以防止它们在可能的情况下被调度到同一个工作节点上。此类规则始终定义为 preferredDuringSchedulingIgnoredDuringExecution
,以便仅在有足够资源的情况下才由 Kubernetes 调度程序满足。例如,如果必须在四个工作节点上调度四个数据节点,则每个数据节点都调度在一个单独的工作节点上,但如果必须在四个工作节点上调度六个数据节点,则前四个数据节点调度在四个单独的工作节点上,而第五个和第六个数据节点必须调度在已经运行数据节点的工作节点上。可以通过在 affinity
字段中指定所需的反关联性规则来覆盖默认的反关联性规则。
有关更多信息,请参阅 关联性和反关联性。
指定资源需求。 可以使用 resources 字段指定 Pod 资源需求。这些需求将复制到容器定义中。
NDB Operator 根据 NDB 集群的配置定义数据节点的默认内存需求。NDB Operator 为此目的计算的最小值是一个估计值,可以通过使用数据节点的 ndbPodSpec
指定替代值来覆盖。
有关更多信息,请参阅 Pod 和容器的资源管理。