このドキュメントでは、クラスタ全体の設定をオーバーライドして、クラスタ内の個々のノードプールの Pod 密度を指定する方法について説明します。通常、ノードレベルの構成はクラスタ全体に適用されますが、Pod 密度は特定のノードプールで構成できます。特定のノードプールの Pod 密度をオーバーライドすると、リソース効率を向上させることができます。この機能は、GPU を搭載したノードなど、特定のワークロード要件や効率的な IP アドレス割り振りにより、ノードあたりの最大 Pod 数に異なる値が必要となる特殊なノードプールに役立ちます。
クラスタ全体の Pod 密度設定をオーバーライドする機能は、バージョン 1.33 以降のクラスタで使用できます。
始める前に
ノードプールの Pod 密度を指定できるのは、次のいずれかのネットワーク構成のクラスタのみです。
ノードプールの Pod 密度を構成する
NodePool
仕様内で Pod 密度を構成して、クラスタレベルの設定をオーバーライドします。この構成は省略可能です。ノードに割り当てられる CIDR 範囲のサイズは、「ノードあたりの Pod の最大数」パラメータから導出されます。
ノードプールの作成後は 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
: ノードプールが存在するクラスタの Namespace。CLUSTER_NAME
: ノードプールの設定をオーバーライドするクラスタの名前。MAX_PODS_PER_NODE
: 指定されたノードプールの単一ノードで実行できる Pod の最大数。
次のステップ
- フラットモードとアイランド モードのネットワーク モデルの違いについて学習する。
- フラット IPv4 モード ネットワーク モデルの実装方法を学習する。
- IPv4 / IPv6 デュアルスタック ネットワーキングを使用してクラスタを作成する方法を確認する。
- バンドルされた NVIDIA GPU オペレーターについて学習する。
- Pod CIDR ブロック、ノード数、Pod 密度がどのように関連しているかを理解する。