Insights sur l'utilisation des adresses IP GKE

Cette page décrit les insights de Network Analyzer sur l'utilisation des adresses IP dans Google Kubernetes Engine (GKE). Pour en savoir plus sur tous les types d'insights, consultez la section Groupes et types d'insights.

Afficher les insights dans l'API Recommender

Pour afficher ces insights dans gcloud CLI ou l'API Recommender, utilisez le type d'insight suivant :

  • google.networkanalyzer.container.ipAddressInsight

Vous devez disposer des autorisations suivantes :

  • recommender.networkAnalyzerGkeIpAddressInsights.list
  • recommender.networkAnalyzerGkeIpAddressInsights.get

Pour en savoir plus sur l'utilisation de l'API Recommender pour les insights de Network Analyzer, consultez la section Utiliser la CLI et l'API Recommender.

Allocation élevée de plages de pods GKE

Cet insight indique que l'utilisation de l'adresse IP sur les plages d'adresses des pods d'un cluster GKE est supérieure à 80%. La stratégie d'attribution d'adresses IP pour les pods GKE varie selon que votre cluster a été créé en tant que cluster de VPC natif ou cluster basé sur le routage.

Clusters basés sur le routage

GKE comprend deux types de clusters, caractérisés par la manière dont ils acheminent le trafic d'un pod à un autre. Un cluster qui utilise des routes Google Cloud est appelé cluster basé sur le routage. Pour en savoir plus, consultez la section Créer un cluster basé sur des routes.

Un cluster basé sur le routage possède une plage d'adresses IP utilisables pour les pods et les services. Bien que cette plage soit destinée à la fois aux pods et aux services, elle est désignée par le terme plage d'adresses des pods.

Le dernier /20 de la plage d'adresses des pods est utilisé pour les services. Une plage /20 contient 212 = 4096 adresses. Ainsi, les adresses 4096 sont utilisées pour les services, et le reste de la plage est utilisé pour les pods.

Chaque nœud de la plage d'adresses des pods dispose d'une plage d'adresses IP /24 pour les pods. Une plage /24 contient 28 = 256 adresses. Rappelez-vous que les adresses 4096 de la plage d'adresses des pods sont utilisées pour les services. La partie restante de la plage d'adresses des pods est utilisée pour les pods et doit être suffisamment grande pour contenir un nombre d'adresses égal au nombre de nœuds multiplié par 256.

Le taux d'allocation pour la plage d'adresses des pods est calculé comme suit:

$\frac{\text {Nombre de nœuds GKE} \times {256}}{\text {Taille de la plage d'adresses du pod}-{4096}}$

Par exemple, vous prévoyez de créer un cluster de nœuds 900. Vous avez donc besoin d'adresses 900 x 256 = 230,400 pour les pods. Supposons à présent que vous disposiez d'une plage d'adresses des pods de taille /14. Une plage /14 contient 218 = 262,144 adresses. Soustrayez les adresses 4096 utilisées pour les services, et vous obtenez 258,048, ce qui est suffisant pour les nœuds 900.

Clusters de VPC natif

GKE comprend deux types de clusters, caractérisés par la manière dont ils acheminent le trafic d'un pod à un autre. Un cluster qui s'appuie sur des plages d'adresses IP d'alias est appelé cluster de VPC natif. Pour en savoir plus, consultez la page sur les clusters de VPC natif.

Lorsque vous créez un pool de nœuds dans un cluster de VPC natif, vous sélectionnez une plage d'adresses IP secondaire pour allouer des adresses IP aux pods GKE. Différents pools de nœuds peuvent utiliser des plages secondaires différentes pour allouer des adresses IP de pods. Pour en savoir plus, consultez la page CIDR multi-pods. L'analyseur réseau calcule le taux d'allocation pour chaque plage d'adresses IP secondaire utilisée pour allouer des adresses IP de pod à un cluster donné. Si le taux d'allocation global est supérieur à 80%, vous obtenez un insight élevé sur l'utilisation.

Le taux d'allocation pour une seule plage d'adresses IP secondaire est calculé comme suit:

$\frac{\text {Adresses IP de la plage secondaire attribuées aux nœuds}}{\text {Taille de la plage secondaire}}$

Par exemple, une plage de pods secondaires /24 peut contenir des pods 256. S'il n'y a qu'un seul nœud 1 avec des pods max_pods_per_node, 110 et 16 par défaut en cours d'exécution, le ratio indique 100% (256/256) au lieu de 6,25% (16/256), car même si les adresses IP des pods 240 ne sont pas utilisées, elles appartiennent toujours à ce nœud. Un autre nœud ne peut être créé avec succès que s'il existe 256 adresses IP de pod inutilisées.

L'allocation globale est calculée comme suit:

$\frac{\text {Somme des adresses IP allouées dans toutes les plages d'adresses IP secondaires utilisées pour allouer des adresses IP de pod}}{\text {Somme des tailles de plage d'adresses IP secondaires utilisées pour allouer des adresses IP de pod}}$

Par exemple, si l'adresse IP de pod par défaut et la plage d'adresses IPv4 de pod supplémentaire sont définies sur /22 et qu'il existe 2 pools de nœuds, un pool de nœuds utilise la plage d'adresses IP de pod par défaut et compte 3 nœuds, tandis que le deuxième pool de nœuds utilise une plage d'adresses IP de pod supplémentaire et compte également 3 nœuds, avec un nombre maximal de pods par défaut défini sur 110. Kubernetes attribue une plage CIDR /24 aux nœuds du cluster. Avec 6 nœuds et une plage CIDR /24 allouée, un total de 256 * 6 = 1536 adresses IP est disponible. Cela représente 75% du nombre total d'adresses IP disponibles dans les deux plages d'adresses IP de pod (1024 * 2 = 2048).

Notez que si l'adresse IP secondaire est partagée entre différents clusters, les insights affichent la valeur totale agrégée de tous les clusters. Pour afficher l'utilisation d'une seule plage d'adresses IP de cluster, vous pouvez exécuter gcloud container cluster describe CLUSTER_NAME pour afficher l'état d'utilisation de chaque adresse IP secondaire. Remplacez CLUSTER_NAME par le nom du cluster.

Recommandations

L'allocation des plages de pods GKE limite l'autoscaling

Cet insight indique que les plages d'adresses IP des pods du cluster ne disposent pas d'assez d'adresses pour permettre la création du nombre maximal de nœuds dans tous les pools de nœuds. La page d'informations de l'insight inclut un tableau qui indique le nombre d'adresses IP de pod actuellement utilisées et le nombre maximal d'adresses IP de pod dans chacune des plages d'adresses IP de pod de votre cluster GKE.

Network Analyzer génère cet insight lorsque la valeur d'utilisation des adresses IP entièrement autoscaling dépasse 100%.

La valeur d'utilisation des adresses IP entièrement autoscalable dépasse 100% lorsque le nombre d'adresses IP de pod requises pour prendre en charge le nombre maximal de nœuds du cluster dépasse le nombre d'adresses IP dans les plages d'adresses IP de pod du cluster. Le nombre maximal de nœuds dans le cluster correspond à la somme du nombre maximal de nœuds dans chaque pool de nœuds du cluster (maxNodeCount).

La valeur d'utilisation des adresses IP entièrement ajustée automatiquement est calculée à l'aide de la formule indiquée dans la section Allocation élevée de plages de pods GKE.

Clusters basés sur le routage

Cet insight est généré lorsque le taux d'allocation de la plage d'adresses des pods est supérieur à 100% et que tous les pools de nœuds sont entièrement soumis à l'autoscaling. Les nœuds GKE ne seront pas créés en raison du manque d'espace d'adresses IP.

Clusters de VPC natif

Cet insight est généré si une plage d'adresses IP secondaire utilisée pour allouer des adresses IP de pod ne dispose pas de suffisamment d'espace d'adresses IP non allouées. L'espace d'adressage IP insuffisant ne peut pas gérer la situation lorsque tous les pools de nœuds sont soumis à un autoscaling complet.

Pour en savoir plus, consultez les pages Bonnes pratiques de mise en réseau GKE et Limites de l'autoscaler de cluster.

Recommandations

  • Pour les clusters basés sur le routage, recréez le cluster avec une plage d'adresses des pods plus étendue. Créez ce cluster en tant que cluster de VPC natif, car il s'agit du mode réseau recommandé. Consultez la section Clusters de VPC natif et clusters basés sur le routage.
  • Pour les clusters de VPC natif, ajoutez des plages de pods supplémentaires au niveau du cluster à l'aide du CIDR multipod et activez le provisionnement automatique des nœuds pour automatiser le scaling des nœuds avec l'allocation automatique des adresses IP des pods. Si vous souhaitez mieux contrôler les adresses IP de pod utilisées pour chaque pool de nœuds, vous pouvez créer des pools de nœuds qui utilisent une plage d'adresses IP secondaire spécifique à l'aide d'un CIDR multipod. Toutefois, cette fonctionnalité ne s'applique qu'aux clusters standards.