本文說明如何為叢集中的個別節點集區指定 Pod 密度,覆寫叢集範圍設定。雖然節點層級設定通常會套用至整個叢集,但您可以在特定節點集區設定 Pod 密度。為特定節點集區覆寫 Pod 密度,可提高資源效率。這項功能適用於專用節點集區,例如含有 GPU 的節點,因為特定工作負載需求或有效率的 IP 位址分配方式,都需要為每個節點的 Pod 數量上限設定不同值。
叢集版本 1.33 以上支援覆寫叢集層級的 Pod 密度設定。
事前準備
只有具備下列其中一種網路設定的叢集,才能為節點集區指定 Pod 密度:
設定節點集區的 Pod 密度
在 NodePool
規格中設定 Pod 密度,即可覆寫叢集層級設定。這項設定為選用項目。系統會根據每個節點的最大 Pod 數參數,推導出指派給節點的 CIDR 範圍大小。
節點集區建立後,maxPodsPerNode
設定即無法變更。系統會驗證 maxPodsPerNode
設定,確保節點集區中的節點有足夠的 IP 位址。這項驗證會使用嚴格的標籤繫結,其中 ClusterCIDRConfig
會透過節點選取器繫結至節點集區。如要在 Cluster CR 或 NodePool 層級設定 baremetal.cluster.gke.io/skip-pod-cidr-size-check
註解,可以略過這項驗證。
建立
ClusterCIDRConfig
資源。這項資源會使用節點選取器繫結至特定 NodePool。
apiVersion: networking.gke.io/v1alpha1 kind: ClusterCIDRConfig metadata: name: my-nodepool-cidr-config spec: nodeSelector: matchLabels: baremetal.cluster.gke.io/node-pool: NODE_POOL_NAME # ... other CIDR config fields (e.g., podCIDR, perNodeMaskSize)
將
NODE_POOL_NAME
替換為 NodePool 的名稱。建立節點集區,並覆寫 Pod 密度。
在 NodePool 定義中指定
nodeConfigOverride
欄位。這個欄位包含podDensity
設定。apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: NODEPOOL_NAME namespace: CLUSTER_NAMESPACE spec: cluster: CLUSTER_NAME nodeConfigOverride: podDensity: maxPodsPerNode: MAX_PODS_PER_NODE # ... other NodePoolSpec fields like nodeCount, taints, labels etc. ...
更改下列內容:
NODEPOOL_NAME
:要覆寫每個節點的 Pod 數量上限值的節點集區資源名稱。CLUSTER_NAMESPACE
:節點集區所在叢集的命名空間。CLUSTER_NAME
:要覆寫節點集區設定的叢集名稱。MAX_PODS_PER_NODE
:您可在指定節點集區的單一節點上執行的 Pod 數量上限。
後續步驟
- 瞭解平面模式和島嶼模式網路模型之間的差異。
- 瞭解如何導入扁平 IPv4 模式網路模型。
- 瞭解如何建立具備 IPv4/IPv6 雙重堆疊網路的叢集。
- 瞭解隨附的 NVIDIA GPU 運算子。
- 瞭解 Pod CIDR 區塊、節點數量和 Pod 密度之間的關聯。