Optimiser l'allocation d'adresses IP

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.

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.

Présentation

Par défaut, GKE autorise jusqu'à 110 pods par nœud sur les clusters standards. Les clusters Autopilot disposent d'un maximum de 32 pods par nœud. 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 pour 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.

Même si le nombre de 110 pods par nœud est une limite stricte, vous pouvez le réduire. Si vous réduisez ce nombre à la valeur par défaut, Kubernetes affecte au nœud un bloc CIDR proportionnellement plus petit. 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 – 110 /24 256

Paramètres CIDR pour les clusters Autopilot

Les paramètres par défaut des tailles CIDR des clusters Autopilot sont les suivants :

  • Plage de sous-réseaux: /23
  • CIDR IPv4 du cluster (plage pour les pods): /17
  • CIDR IPv4 pour les services (plage des services): /22

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.

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 (aperçu).
  • 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 (aperçu).

Vous pouvez définir la taille de la plage d'adresses du pod lors de la création d'un cluster à l'aide de l'outil gcloud ou de Google Cloud Console.

gcloud

Pour définir le nombre maximal de pods par nœud à l'aide de l'outil gcloud, 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.4.32.0/27 \
  --default-max-pods-per-node MAXIMUM_PODS \
  --zone COMPUTE_ZONE

Remplacez l'élément suivant :

  • 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 votre cluster par défaut. Si cette valeur est omise, Kubernetes attribue la valeur par défaut 110.
  • COMPUTE_ZONE : zone de calcul de votre cluster.

Console

  1. Accédez à la page Google Kubernetes Engine dans 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 CIDR IPv4 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 CIDR IPv4 du cluster pour les pods sur /21, Kubernetes attribue une plage CIDR /24 aux nœuds du cluster. 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 CIDR IPv4 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.

Définir 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 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.

Étape suivante