Résoudre les problèmes de scaling Istiod 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.
Facteurs de scaling
Istiod envoie une configuration à chaque side-car à l'aide d'un flux gRPC de longue durée. Plusieurs caractéristiques affectent le scaling :
- La taille de la configuration à générer :
- Nombre total de services/pods et ressources Istio
- À grande échelle, ajustez les paramètres du side-car pour réduire la taille de la configuration.
- La vitesse à laquelle l'environnement évolue :
- Lorsqu'un service est créé ou que la configuration d'Istio est modifiée, des mises à jour complètes sont envoyées aux proxys.
- L'ajout de nouveaux points de terminaison a peu d'impact sur les performances, car seules des mises à jour incrémentielles sont envoyées.
- Le nombre de proxys pour lesquels la configuration est générée :
- Est affecté par le nombre de passerelles et de pods avec un side-car.
Remarques concernant le scaling
Istiod s'adapte bien verticalement (requêtes volumineuses) et horizontalement (plus d'instances dupliquées). Vérifiez que votre limite de processeur n'est pas trop restrictive. Si Istiod atteint cette limite, une limitation peut survenir et avoir un impact négatif sur la distribution de la configuration. En cas de problèmes de performances, une mise à niveau vers la dernière version de Cloud Service Mesh, car chaque version dispose et optimiser les performances.
Charges déséquilibrées
Des modifications importantes de la taille du cluster peuvent entraîner un déséquilibre temporaire de la charge, en raison des connexions de longue durée. Ce problème est atténué par un âge de connexion maximal de 30 minutes, ce qui peut entraîner des messages d'erreur dans Envoy, tels que gRPC config stream
closed: 13
, ce qui permet de rééquilibrer la charge naturellement.
Atténuez ce problème en utilisant plusieurs instances dupliquées d'Istiod (la valeur par défaut étant de deux instances dupliquées) et la fonctionnalité de pré-scaling si vous prévoyez des scalings à la hausse extrêmes des clusters.