Configurer le nombre maximal de pods par nœud


Cette page explique comment configurer le nombre maximal de pods pouvant être exécutés sur un nœud pour les clusters standards. Cette valeur détermine la taille des plages d'adresses IP attribuées aux nœuds sur Google Kubernetes Engine (GKE). Les pods qui s'exécutent sur un nœud se voient attribuer des adresses IP à partir de la plage d'adressage CIDR du nœud.

Lors de la planification, GKE utilise le nombre maximal de pods par nœud pour déterminer s'il dispose d'une capacité suffisante pour planifier un pod. Seuls les pods qui ont été attribués à un nœud et qui ne sont pas encore arrêtés (phase Failed ou Succeeded) sont comptabilisés dans cette capacité.

Les étapes décrites sur cette page ne s'appliquent pas aux clusters Autopilot, car le nombre maximal de nœuds est préconfiguré et immuable.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande gcloud components update.

Restrictions

  • Vous ne pouvez configurer le nombre maximal de pods par nœud que dans les clusters de VPC natif.
  • La création de nœuds est limitée par le nombre d'adresses disponibles dans la plage d'adresses allouée aux pods. Consultez le tableau de planification de plages d'adresses IP pour connaître les tailles par défaut, ainsi que les tailles minimales et maximales de la plage d'adresses allouée aux pods. Vous pouvez également ajouter des adresses IP de pods supplémentaires à l'aide d'un CIDR multi-pod non contigu.
  • Chaque cluster doit créer des pods kube-system, tels que kube-proxy, dans l'espace de noms kube-system. Pensez à prendre en compte vos pods de charge de travail et vos pods système lorsque vous réduisez le nombre maximal de pods par nœud. Pour répertorier les pods système dans votre cluster, exécutez la commande suivante :

    kubectl get pods --namespace kube-system
    

Configurer le nombre maximal de pods par nœud

Vous pouvez configurer le nombre maximal de pods par nœud lors de la création d'un cluster ou d'un pool de nœuds. Vous ne pouvez pas modifier ce paramètre une fois le cluster ou le pool de nœuds créé.

Toutefois, si vous n'avez plus d'adresses IP de pod, vous pouvez créer des plages d'adresses IP de pod supplémentaires à l'aide du CIDR multipod non contigugu.

Vous pouvez définir la taille de la plage d'adresses du pod lors de la création d'un cluster en utilisant gcloud CLI ou Google Cloud Console.

gcloud

Pour définir le nombre maximal de pods par nœud en utilisant gcloud CLI, exécutez la commande suivante :

gcloud container clusters create CLUSTER_NAME \
    --enable-ip-alias \
    --cluster-ipv4-cidr=10.0.0.0/21 \
    --services-ipv4-cidr=10.4.0.0/19 \
    --create-subnetwork=name='SUBNET_NAME',range=10.5.32.0/27 \
    --default-max-pods-per-node=MAXIMUM_PODS \
    --location=COMPUTE_LOCATION

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom de votre nouveau cluster
  • SUBNET_NAME : nom du nouveau sous-réseau pour votre cluster.
  • MAXIMUM_PODS : nombre maximal de pods par nœud pour le cluster, pouvant être configuré jusqu'à 256. Si cette valeur est omise, Kubernetes attribue la valeur par défaut 110.
  • COMPUTE_LOCATION : emplacement Compute Engine du nouveau cluster.

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Configurez votre nouveau cluster.

  4. Dans le volet de navigation, sous Cluster, cliquez sur Réseau.

  5. Assurez-vous que la case Activer le routage du trafic de VPC natif (utilisation d'une adresse IP d'alias) est cochée.

  6. Dans le volet de navigation, sous Pools de nœuds, cliquez sur Nœuds.

  7. Définissez le champ Nombre maximal de pods par nœud sur 110. GKE exploite cette valeur pour ajuster la taille de la plage d'adresses IP allouée aux nœuds.

  8. Cliquez sur Create (Créer).

Lorsque vous configurez le nombre maximal de pods par nœud pour le cluster, Kubernetes utilise cette valeur pour allouer une plage CIDR aux nœuds. Vous pouvez calculer le nombre maximal de nœuds sur le cluster en fonction de la plage d'adresse IP du cluster pour les pods et de la plage CIDR allouée pour le nœud.

Par exemple, si vous définissez le nombre maximal de pods par défaut sur 110 et la plage d'adresses IP secondaire des pods sur /21, Kubernetes attribue une plage CIDR /24 aux nœuds du nœud. Cela autorise un maximum de 2(24-21) = 23 = 8 nœuds sur le cluster.

De même, si vous définissez le nombre maximal de pods par défaut sur 8 et la plage d'adresses IP secondaire du cluster pour les pods sur /21, Kubernetes attribue une plage CIDR /28 aux nœuds. Cela autorise un maximum de 2(28-21) = 27 = 128 nœuds sur le cluster.

Configurer le nombre maximal de pods dans un nouveau pool de nœuds pour un cluster existant

Vous pouvez également spécifier le nombre maximal de pods par nœud lors de la création d'un pool de nœuds dans un cluster existant. La création d'un pool de nœuds vous permet d'optimiser l'allocation d'adresses IP, même dans les clusters existants où aucun nombre maximal par défaut de pods par nœud n'est configuré au niveau du cluster.

La définition du nombre maximal de pods au niveau du pool de nœuds remplace la valeur maximale par défaut définie au niveau du cluster. Si vous ne configurez pas de nombre maximal de pods par nœud lorsque vous créez le pool de nœuds, le nombre maximal au niveau du cluster s'applique.

gcloud

gcloud container node-pools create POOL_NAME \
    --cluster=CLUSTER_NAME \
    --max-pods-per-node=MAXIMUM_PODS

Remplacez l'élément suivant :

  • POOL_NAME : nom de votre nouveau pool de nœuds.
  • CLUSTER_NAME : nom du cluster dans lequel vous souhaitez créer le pool de nœuds.
  • MAXIMUM_PODS : nombre maximal de nœuds dans le pool de nœuds.

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Cliquez sur Ajouter un pool de nœuds.

  4. Dans le volet de navigation, cliquez sur Nœuds.

  5. Sous Mise en réseau, saisissez une valeur pour le champ Nombre maximal de pods par nœud. GKE exploite cette valeur pour ajuster la taille de la plage d'adresses IP allouée aux nœuds.

À propos du nombre maximal par défaut de pods par nœud

Par défaut, GKE autorise jusqu'à 110 pods par nœud sur les clusters standards, mais les clusters standards peuvent être configurés pour autoriser jusqu'à 256 pods par nœud. Les clusters Autopilot choisissent le nombre maximal de pods par nœud entre 8 et 256, en fonction de la densité attendue en pods de charge de travail. Kubernetes attribue à chaque nœud une plage d'adresses IP, un bloc CIDR, afin que chaque pod puisse avoir une adresse IP unique. La taille du bloc CIDR correspond au nombre maximal de pods par nœud.

Plages CIDR de pods dans les clusters standards

Avec un maximum par défaut de 110 pods par nœud pour les clusters standards, Kubernetes affecte un bloc CIDR /24 (256 adresses) à chacun des nœuds. Avec un nombre d'adresses IP disponibles plus de deux fois supérieur au nombre maximal de pods pouvant être créés sur un nœud, Kubernetes peut réduire la réutilisation des adresses IP lorsque des pods sont ajoutés et supprimés d'un nœud.

Bien que la limite de 256 pods par nœud soit une limite stricte, vous pouvez réduire le nombre de pods sur un nœud. La taille du bloc CIDR attribué à un nœud dépend du nombre maximal de pods par valeur de nœud. Le bloc contient toujours au moins deux fois plus d'adresses que le nombre maximal de pods par nœud.

Le tableau suivant répertorie la taille du bloc CIDR et le nombre correspondant d'adresses IP disponibles que Kubernetes attribue aux nœuds en fonction du nombre maximal de pods par nœud :

Nombre maximal de pods par nœud Plage CIDR par nœud Nombre d'adresses IP
8 /28 16
9 – 16 /27 32
17 – 32 /26 64
33 – 64 /25 128
65-128 /24 256
129 - 256 /23 512

Plages CIDR de pods dans les clusters Autopilot

Dans les clusters GKE Autopilot, le nombre maximal de pods par nœud et l'allocation de blocs CIDR associée sont dynamiques. Cela signifie qu'ils peuvent varier en fonction de la version GKE et de la densité des charges de travail.

  • Versions 1.28 et antérieures de GKE Autopilot : le nombre maximal de pods par nœud est fixé à 32. Cela se traduit par l'attribution d'un bloc CIDR /26 (64 adresses IP) à chaque nœud.

  • Versions 1.28 et ultérieures de GKE Autopilot : le nombre maximal de pods par nœud est dynamique et peut être compris entre 8 et 256. La taille du bloc CIDR est ajustée en conséquence pour garantir que chaque pod dispose d'une adresse IP unique.

La nature dynamique du nombre maximal de pods par nœud dans les clusters Autopilot permet une utilisation efficace des ressources. Le cluster s'adapte automatiquement aux exigences de charge de travail, en allouant le nombre approprié de pods et d'adresses IP par nœud.

Pour gérer la taille initiale de votre cluster et la configuration de nombre maximal de pods par nœud, sélectionnez une plage d'adresses IP secondaire appropriée pour les pods. Nous vous recommandons de planifier avec soin votre adressage IP. Toutefois, si vous épuisez les adresses IP à mesure que le cluster évolue, tout scaling supplémentaire est empêché jusqu'à ce que d'autres adresses IP soient ajoutées. Vous pourrez ajouter des plages secondaires supplémentaires si nécessaire. Pour plus d'informations sur l'ajout de plages d'adresses IP après la création du cluster, consultez la page Ajouter des plages secondaires à un réseau VPC.

Une plage de taille /16 (par exemple, cluster-ipv4-cidr=240.0.0.0/16) est généralement recommandée pour fournir la flexibilité nécessaire à la croissance et à la modification de la densité des pods au sein du cluster.

Tenez compte des points suivants lorsque vous planifiez la configuration réseau de votre cluster Autopilot :

  • Densité des pods : prenez en compte le nombre maximal de pods nécessaires à votre cluster pour vos charges de travail.
  • Plage CIDR : choisissez une plage d'adresses IP secondaire pour les pods, capable de répondre aux exigences de taille du cluster et de densité des pods.
  • Flexibilité : une plage CIDR plus étendue telle que /16 offre plus de flexibilité pour la croissance et les modifications futures de la densité des pods.

En planifiant soigneusement votre plage CIDR, vous garantissez que votre cluster Autopilot peut initialement évoluer pour répondre à vos besoins. Toutefois, si vous rencontrez des limites d'adresses IP à mesure que votre cluster évolue, vous pouvez ajouter des plages secondaires supplémentaires pour permettre davantage de scaling.

Réduire le nombre maximal de pods.

La réduction du nombre maximal de pods par nœud permet au cluster d'avoir plus de nœuds, car chaque nœud nécessite une plus petite partie de l'espace total alloué aux adresses IP. Vous pouvez également accepter le même nombre de nœuds dans le cluster en spécifiant un espace pour les adresses IP plus petit pour les pods au moment de la création du cluster.

La réduction du nombre maximal de pods par nœud vous permet également de créer des clusters plus petits nécessitant moins d'adresses IP. Par exemple, avec huit pods par nœud, chaque pod reçoit une plage CIDR /28. Ces plages d'adresses IP, ainsi que les plages secondaires et de sous-réseau que vous définissez déterminent le nombre d'adresses IP requis pour créer un cluster.

Vous pouvez configurer le nombre maximal de pods par nœud au moment de la création du cluster et du pool de nœuds.

Étapes suivantes