Résoudre les problèmes liés aux limites de ressources dans Cloud Service Mesh

Cette section décrit les problèmes courants liés à Cloud Service Mesh et comment les résoudre. Si vous avez besoin d'une aide supplémentaire, consultez la page Obtenir de l'aide.

Les problèmes de limite de ressources Cloud Service Mesh peuvent être causés par l'un des éléments suivants:

  • Il existe des objets LimitRange créés dans l'espace de noms istio-system ou dans tout espace de noms dans lequel l'injection side-car automatique est activée.
  • Les limites définies par l'utilisateur sont trop faibles.
  • Des nœuds ou d'autres ressources sont à court de mémoire.

Les symptômes potentiels des problèmes liés aux ressources sont les suivants :

  • Cloud Service Mesh ne reçoit pas de configuration répétée du plan de contrôle indiqué par l'erreur Envoy proxy NOT ready. Voir cette erreur plusieurs fois au démarrage est normale, mais c'est un problème dans les autres cas.
  • Il existe des problèmes de mise en réseau avec certains pods ou nœuds qui deviennent inaccessibles.
  • istioctl proxy-status affiche les états STALE dans la sortie.
  • Des messages OOMKilled sont présents dans les journaux d'un nœud.
  • De la mémoire est utilisée par des conteneurs : kubectl top pod POD_NAME --containers.
  • De la mémoire est utilisée par des pods situés dans un nœud : kubectl top node my-node.
  • Envoy est à court de mémoire : kubectl get pods indique l'état OOMKilled dans la sortie.

Les side-cars mettent beaucoup de temps à recevoir la configuration

Un retard dans la propagation de la configuration peut se produire en raison de ressources insuffisantes allouées à istiod ou d'une taille de cluster trop importante.

Il existe plusieurs solutions pour résoudre ce problème :

  1. Pour le maillage de services Cloud dans le cluster, si vos outils de surveillance (Prometheus, Stackdriver, etc.) indiquent une utilisation élevée d'une ressource de istiod, augmentez l'allocation de cette ressource (par exemple, augmentez la limite de processeur ou de mémoire du déploiement de istiod). Il s'agit d'une solution temporaire. Nous vous recommandons d'étudier les méthodes de réduction de la consommation de ressources.

  2. Si vous rencontrez ce problème dans un cluster ou un déploiement volumineux, réduisez la quantité d'états de configuration transmis à chaque proxy en configurant des ressources side-car.

  3. Pour Cloud Service Mesh dans le cluster, si le problème persiste, essayez d'effectuer un scaling horizontal de istiod.

  4. Si toutes les autres étapes de dépannage ne vous permettent pas de résoudre le problème, signalez un bug indiquant votre déploiement et les problèmes observés. Suivez ces étapes pour inclure si possible un profil de processeur/mémoire dans le rapport de bug, ainsi qu'une description détaillée de la taille du cluster, du nombre de pods et du nombre de services.