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

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

Les problèmes liés aux limites de ressources dans Cloud Service Mesh peuvent avoir les causes suivantes:

  • 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 la configuration du plan de contrôle à plusieurs reprises, comme indiqué par l'erreur Envoy proxy NOT ready. L'affichage de cette erreur à plusieurs reprises au démarrage est normal, mais est problématique par ailleurs.
  • 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.

La réception de la configuration des side-cars prend beaucoup de temps

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 Cloud Service Mesh dans le cluster, si vos outils de surveillance (Prometheus, Stackdriver, etc.) montrent une utilisation intensive d'une ressource par istiod, augmentez l'allocation de cette ressource, par exemple en augmentant la limite de processeur ou de mémoire du déploiement istiod. Cette solution est temporaire. Par conséquent, nous vous recommandons d'étudier les méthodes permettant de réduire 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 sidecar.

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

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