您可以為個別節點集區設定 Pod 密度,覆寫整個叢集的設定,進而提升資源效率。這項功能適用於特殊節點集區,例如具有 GPU 的節點,其中工作負載需求或有效率的 IP 位址分配,需要每個節點的 Pod 數量上限有不同的值。
事前準備
只有具備下列其中一種網路設定的叢集,才能指定節點集區的 Pod 密度:
設定節點集區的 Pod 密度
在 NodePool 規格中設定 Pod 密度,即可覆寫叢集層級設定。這項設定為選用。系統會根據每個節點的 Pod 數量上限參數,推導出指派給節點的 CIDR 範圍大小。
節點集區建立後,maxPodsPerNode 設定即無法變更。系統會驗證 maxPodsPerNode 設定,確保節點集區中的節點有足夠的 IP 位址。這項驗證作業會使用嚴格的標籤繫結,其中 ClusterCIDRConfig 會使用節點選取器繫結至節點集區。如要略過這項驗證,請在叢集 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替換為節點集區名稱。建立節點集區,並覆寫 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 Operator。
- 瞭解 Pod CIDR 區塊、節點數量和 Pod 密度之間的關聯。