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. Cette valeur détermine la taille des plages d'adresses IP attribuées aux nœuds sur Google Kubernetes Engine. Les pods qui s'exécutent sur un nœud se voient attribuer des adresses IP à partir de la plage d'adressage CIDR des pods sur un nœud.

Présentation

Par défaut, GKE configure les nœuds pour qu'ils n'exécutent pas plus de 110 pods. 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.

Avec un maximum par défaut de 110 pods par nœud, Kubernetes affecte un bloc CIDR /24 (256 adresses) à chacun des nœuds. Avec un nombre d'adresses IP disponibles environ deux fois plus grand que le nombre de pods pouvant être créés sur un nœud, Kubernetes est en mesure de limiter 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 ci-dessous répertorie la taille du bloc CIDR que Kubernetes affecte à chaque nœud en fonction du nombre maximal de pods par nœud :

Nombre maximal de pods par nœud Plage CIDR par nœud
8 /28
9 – 16 /27
17 – 32 /26
33 – 64 /25
65 – 110 /24

Lors de la configuration du nombre maximal de pods par nœud, vous configurez indirectement la quantité d'espace pour les adresses IP requise par chaque nœud de cluster. Par exemple, si vous définissez le nombre maximal de pods par nœud sur 30, une plage CIDR /26 est utilisée (voir le tableau ci-dessus) et 64 adresses IP sont attribuées à chaque nœud. Si vous ne configurez pas le nombre maximal de pods par nœud, une plage CIDR /24 est utilisée et 256 adresses IP sont attribuées à chaque nœud.

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 allouées aux pods, ainsi que les plages secondaires et de sous-réseau définies par l'utilisateur 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. Reportez-vous à ce tableau pour connaître les tailles par défaut, ainsi que les tailles minimales et maximales de la plage d'adresses allouée aux pods.

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

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.

Créer un cluster avec un maximum de 110 pods par nœud

gcloud

gcloud container clusters create cluster-name \
  --enable-ip-alias --cluster-ipv4-cidr=10.0.0.0/21 \
  --create-subnetwork=name='cluster-name-subnet',range=10.4.32.0/27 \
  --services-ipv4-cidr=10.4.0.0/19 --default-max-pods-per-node=110 \
  --zone=compute-zone

Console

  1. Accédez au menu Google Kubernetes Engine de Cloud Console.

    Accéder au menu Google Kubernetes Engine

  2. Cliquez sur le bouton Créer un cluster.

  3. Configurez le cluster selon vos besoins.

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

  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 Créer.

Cette opération crée un cluster pouvant contenir jusqu'à huit nœuds. En fonction du nombre maximal de pods par nœud, Kubernetes attribue à chaque nœud une plage CIDR /24 à utiliser par les pods du nœud. Comme ce cluster attribue des adresses IP allouées aux pods à partir d'une plage CIDR /21 (cluster-ipv4-cidr), il peut contenir jusqu'à huit nœuds (24 - 21 = 3,23 = 8). L'option default-max-pods-per-node peut être omise, car 110 est la valeur par défaut.

Créer un cluster avec un maximum de 8 pods par nœud

gcloud

gcloud container clusters create cluster-name \
  --enable-ip-alias --cluster-ipv4-cidr=10.0.0.0/21 \
  --create-subnetwork=name='cluster-name-subnet',range=10.4.32.0/21 \
  --services-ipv4-cidr=10.4.0.0/19 --default-max-pods-per-node=8 \
  --zone=compute-zone

Console

  1. Accédez au menu Google Kubernetes Engine de Cloud Console.

    Accéder au menu Google Kubernetes Engine

  2. Cliquez sur le bouton Créer un cluster.

  3. Configurez le cluster selon vos besoins.

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

  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 8. GKE exploite cette valeur pour ajuster la taille de la plage d'adresses IP allouée aux nœuds.

  8. Cliquez sur Créer.

Cette opération crée un cluster pouvant contenir jusqu'à 128 nœuds. En fonction du nombre maximal de pods par nœud, Kubernetes attribue à chaque nœud une plage CIDR /28 à utiliser par les pods du nœud. La plage disponible pour tous les pods (cluster-ipv4-cidr) étant une plage /21, cela signifie qu'il peut y avoir jusqu'à 128 nœuds (28 - 21 = 7, 27 = 128).

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ù default-max-pods-per-node ne bénéficiait pas d'une configuration au niveau du cluster.

gcloud

gcloud container node-pools create pool-name \
  --cluster=cluster-name \
  --max-pods-per-node=30

Console

  1. Sur la page de modification du cluster, cliquez sur Ajouter un pool de nœuds.
  2. Spécifiez 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.

Cette valeur remplace l'option default-max-pods-per-node, qui est appliquée au niveau du cluster. Si vous omettez l'option max-pods-per-node lors de la création d'un pool de nœuds, la configuration par défaut au niveau du cluster est utilisée.

Étape suivante