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

Ce document explique comment spécifier la densité de pods pour des pools de nœuds individuels dans votre cluster, en remplaçant le paramètre à l'échelle du cluster. Bien que les configurations au niveau des nœuds s'appliquent généralement à l'ensemble du cluster, vous pouvez configurer la densité de pods sur un pool de nœuds spécifique. Remplacer la densité de pods pour des pools de nœuds spécifiques peut 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ù des exigences de charge de travail spécifiques ou une allocation efficace d'adresses IP nécessitent une valeur différente pour le nombre maximal de pods par nœud.

La possibilité de remplacer le paramètre de densité de pods à l'échelle du cluster est disponible pour les clusters de la version 1.33 et ultérieure.

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 avec 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 "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 CR du cluster ou au niveau du NodePool.

  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 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 réside 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 pouvant être exécutés sur un seul nœud du pool de nœuds spécifié.

Étapes suivantes