Insights sur l'utilisation des adresses IP GKE

Cette page décrit les insights de Network Analyzer pour 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

Dans GKE, les clusters se distinguent par la façon 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 le routage.

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 possède une plage d'adresses IP /24 pour les pods. Une plage /24 comporte 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. Elle doit être suffisamment grande pour contenir le nombre de nœuds multiplié par 256 adresses.

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 des pods}-{4096}}$

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

Clusters de VPC natif

Dans GKE, les clusters se distinguent par la façon 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 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. Les différents pools de nœuds peuvent utiliser différentes plages secondaires 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 allouée aux nœuds}}{\text {Taille de la plage secondaire}}$

Par exemple, une plage secondaire de pods /24 peut contenir 256 pods. S'il n'y a que 1 nœud 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). En effet, même si les adresses IP de pods 240 ne sont pas utilisées, elles appartiennent toujours à ce nœud. Un autre nœud ne peut être créé 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 les adresses IP des pods}}{\text {Somme des tailles des plages d'adresses IP secondaires utilisées pour allouer les adresses IP des pods}}$

Par exemple, si l'adresse IP par défaut des pods et la plage d'adresses IPv4 supplémentaire des pods sont définies sur /22 et qu'il existe 2 pools de nœuds, un pool utilise la plage d'adresses IP des pods par défaut et comporte 3 nœuds, tandis que le second pool utilise une plage d'adresses IP de pods supplémentaire et comporte 3 nœuds, avec le 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 allouée /24, le nombre total d'adresses IP est de 256 * 6 = 1536. Cela représente 75% du nombre total d'adresses IP disponibles dans les deux plages d'adresses IP de pods (1024 * 2 = 2048).

Il est important de noter que si l'adresse IP secondaire est partagée entre différents clusters, les insights indiquent la valeur totale agrégée de tous les clusters. Pour afficher l'utilisation d'une plage d'adresses IP de cluster unique, vous pouvez exécuter gcloud container cluster describe CLUSTER_NAME afin d'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'un nombre d'adresses suffisant pour créer le nombre maximal de nœuds dans l'ensemble des pools de nœuds. La page d'informations des insights inclut un tableau qui indique le nombre d'adresses IP de pods actuellement utilisées et le nombre maximal d'adresses IP de pods dans chacune des plages d'adresses IP de pods de votre cluster GKE.

Network Analyzer génère cet insight lorsque la valeur d'utilisation de l'adresse IP avec autoscaling dépasse 100%.

La valeur d'utilisation des adresses IP avec autoscaling dépasse 100% lorsque le nombre d'adresses IP de pods requis pour prendre en charge le nombre maximal de nœuds dans le cluster dépasse le nombre d'adresses IP inclus dans les plages d'adresses IP des pods 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 avec autoscaling est calculée à l'aide de la formule figurant dans la section Allocation de plages de pods GKE élevée.

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 pods ne dispose pas d'un espace d'adresses IP non alloué suffisant. L'espace d'adressage IP insuffisant ne peut pas gérer le cas où tous les pools de nœuds font l'objet d'un autoscaling.

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. Vous pouvez créer ce cluster en tant que cluster de VPC natif, car il s'agit du mode réseau recommandé. Consultez la page 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 d'un CIDR multipod et activez le provisionnement automatique des nœuds pour automatiser le scaling des nœuds avec l'allocation automatique des adresses IP de pods. Si vous souhaitez mieux contrôler les adresses IP des pods utilisées pour chaque pool de nœuds, vous pouvez créer les pools de nœuds qui utilisent une plage d'adresses IP secondaire spécifique à l'aide du CIDR multipod. Toutefois, ceci ne s'applique que aux clusters standards.