Remplacer la densité de pods pour un pool de nœuds

Vous pouvez configurer la densité des pods pour des pools de nœuds individuels afin de remplacer le paramètre à l'échelle du cluster, ce qui vous aide à améliorer l'efficacité des ressources. Cette fonctionnalité est utile pour les pools de nœuds spécialisés, tels que les nœuds avec GPU, où les exigences de charge de travail ou l'allocation efficace d'adresses IP nécessitent une valeur différente pour le nombre maximal de pods par nœud.

Avant de commencer

La possibilité de spécifier la densité de pods pour les pools de nœuds n'est disponible que pour les clusters dotés de l'une des configurations réseau suivantes :

Configurer la densité des pods pour un pool de nœuds

Configurez la densité des pods dans la spécification NodePool pour remplacer les paramètres au niveau du cluster. Cette configuration est facultative. Le système déduit la taille de la plage CIDR attribuée au nœud à partir du paramètre du nombre maximal de pods par nœud.

La configuration maxPodsPerNode est immuable après la création du pool de nœuds. Le système valide le paramètre maxPodsPerNode pour s'assurer qu'il y a suffisamment d'adresses IP pour les nœuds du pool de nœuds. Cette validation utilise une liaison d'étiquette stricte, où un ClusterCIDRConfig est lié à un pool de nœuds à l'aide d'un sélecteur de nœuds. Vous pouvez ignorer cette validation en définissant l'annotation baremetal.cluster.gke.io/skip-pod-cidr-size-check sur la ressource personnalisée du cluster ou au niveau du pool de nœuds.

  1. Créer une ressource ClusterCIDRConfig

    Cette ressource est liée à un NodePool spécifique à l'aide d'un sélecteur de nœuds.

    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)
    

    Remplacez NODE_POOL_NAME par le nom de votre NodePool.

  2. Créez le pool de nœuds avec une densité de pods remplacée.

    Spécifiez le champ nodeConfigOverride dans la définition de NodePool. Ce champ contient la configuration 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. ...
    

    Remplacez les éléments suivants :

    • NODEPOOL_NAME : nom de la ressource de pool de nœuds dont vous remplacez la valeur maximale de pods par nœud.

    • CLUSTER_NAMESPACE : espace de noms du cluster dans lequel se trouve le pool de nœuds.

    • CLUSTER_NAME : nom du cluster dans lequel vous remplacez les paramètres du pool de nœuds.

    • MAX_PODS_PER_NODE : nombre maximal de pods que vous pouvez exécuter sur un même nœud dans le pool de nœuds spécifié.

Étapes suivantes