NDB Cluster 自訂資源定義提供了 NdbClusterPodSpec 結構,用於使用各自的 .spec.managementNode.ndbPodSpec、.spec.dataNode.ndbPodSpec 和 .spec.mysqlNode.ndbPodSpec 欄位,定義個別管理、資料和 SQL 節點的 Pod 規格。為這些 NdbPodSpec 欄位設定的值會複製到各自的 StatefulSet 定義中。本章說明如何使用這些 NdbClusterPodSpec 欄位將 Pod 指派給特定工作節點、定義親和性規則,以及指定 Pod 資源需求。
將 NDB 節點 Pod 指派給工作 Pod。 您可以在 nodeSelector 欄位中指定工作節點的標籤,以指定應在其上排程指定 NDB Cluster 節點的工作節點標籤。
如需更多資訊,請參閱 將 Pod 指派給節點。
親和性和反親和性。 可以使用 affinity 欄位定義 NDB Cluster 節點的親和性和反親和性規則。Kubernetes Cluster 使用這些規則來決定在何處排程 NDB Cluster Pod。在根據任何指定的 nodeSelector 標籤篩選出可用的工作節點集區後,會套用這些規則。
NDB Operator 為三種 MySQL Cluster 節點類型(ndb_mgmd、ndbmtd 和 mysqld)定義預設反親和性規則,以盡可能防止它們排程在同一個工作節點上。此類規則一律定義為 preferredDuringSchedulingIgnoredDuringExecution,因此 Kubernetes 排程器只有在有足夠資源時才會滿足此規則。例如,如果必須在四個工作節點上排程四個資料節點,則每個資料節點都會排程在不同的工作節點上,但如果必須在四個工作節點上排程六個資料節點,則前四個資料節點會排程在四個不同的工作節點上,而第五個和第六個資料節點必須排程在已執行資料節點的工作節點上。可以透過在 affinity 欄位中指定所需的反親和性規則來覆寫預設反親和性規則。
如需更多資訊,請參閱 親和性和反親和性。
指定資源需求。 可以使用資源欄位指定 Pod 資源需求。這些需求會複製到容器定義中。
NDB Operator 根據 NDB Cluster 的組態定義資料節點的預設記憶體需求。NDB Operator 為此目的計算的最小值是一個估計值,並且可以使用資料節點的 ndbPodSpec 指定替代值來覆寫。
如需更多資訊,請參閱 Pod 和容器的資源管理。