覆寫節點集區的 Pod 密度

本文說明如何為叢集中的個別節點集區指定 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 註解,可以略過這項驗證。

  1. 建立 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 的名稱。

  2. 建立節點集區,並覆寫 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 數量上限。

後續步驟