4.3 使用 NdbClusterPodSpec

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_mgmdndbmtdmysqld)中的每一個定義預設的反親和性規則,以盡可能防止它們排程在同一個工作節點上。此類規則始終定義為 preferredDuringSchedulingIgnoredDuringExecution,以便 Kubernetes 排程器僅在有足夠資源時才會滿足此規則。例如,如果必須將四個資料節點排程在四個工作節點上,則每個資料節點都會排程在不同的工作節點上,但是如果必須將六個資料節點排程在四個工作節點上,則前四個資料節點會排程在四個不同的工作節點上,而第五個和第六個資料節點必須排程在已經執行資料節點的工作節點上。可以透過在 affinity 欄位中指定所需的反親和性規則來覆寫預設的反親和性規則。

如需詳細資訊,請參閱 親和性和反親和性

指定資源需求。可以使用資源欄位來指定 Pod 資源需求。這些需求會複製到容器定義中。

NDB Operator 會根據 NDB Cluster 的組態來定義資料節點的預設記憶體需求。NDB Operator 為此目的計算的最小值是一個估計值,可以使用資料節點的 ndbPodSpec 來指定替代值以覆寫此值。

如需詳細資訊,請參閱 Pod 和容器的資源管理