Par défaut, le plan de contrôle pousse la configuration complète des services vers chaque sidecar du plan de données, car il ignore quels services chaque charge de travail appelle réellement. À grande échelle, cela engendre deux problèmes :
Consommation mémoire élevée des sidecars. Chaque sidecar stocke les configurations de tous les services du cluster, y compris ceux avec lesquels il ne communique jamais.
Charge importante sur le plan de contrôle. Toute modification de configuration, comme la création d’un virtual service, déclenche un push vers tous les sidecars, indépendamment de leur pertinence. Cela réduit l’efficacité et la disponibilité du plan de contrôle.
Service Mesh (ASM) propose trois fonctionnalités pour réduire la charge du plan de contrôle et la consommation mémoire des sidecars : les sélecteurs de découverte de services, la recommandation de sidecar et l’optimisation xDS adaptative. Chacune opère à un niveau de granularité différent.
Sélectionnez une stratégie d’optimisation
Le tableau suivant compare ces trois fonctionnalités pour vous aider à choisir l’approche appropriée.
| Fonctionnalité | Niveau de périmètre | Mécanisme | Prérequis | Mises à jour automatiques | Idéal pour |
|---|---|---|---|---|---|
| Sélecteurs de découverte de services | Namespace | Filtre les namespaces que le plan de contrôle découvre | Libellés de namespace | S.O. | Clusters comportant de nombreux namespaces où les charges de travail n’ont besoin que de quelques services |
| Recommandation de sidecar | Charge de travail | Analyse les journaux d’accès pour générer des ressources Sidecar par charge de travail | Activation de Log Service pour la collecte des journaux d’accès | Non. Relancez la recommandation lorsque les dépendances changent | Grand nombre de services au sein d’un même namespace |
| Optimisation xDS adaptative | Charge de travail | Déploie une passerelle de sortie pour suivre les dépendances d’appels et génère automatiquement des ressources Sidecar | Aucun | Oui. Les ressources Sidecar se mettent à jour automatiquement selon l’évolution des dépendances | Équipes souhaitant une optimisation automatique sans gestion manuelle des Sidecar |
Sélecteurs de découverte de services
Configurez des sélecteurs de libellés basés sur les libellés de namespace. Le plan de contrôle découvre et traite alors uniquement les services présents dans les namespaces correspondants, et ne pousse que ces configurations vers les sidecars.
Scénario applicable : Le plan de données contient de nombreux namespaces et services, mais les charges de travail de chaque namespace n’appellent que les services de quelques namespaces spécifiques.
Pour obtenir les instructions de configuration, consultez Utiliser les sélecteurs de découverte de services pour améliorer l’efficacité du push de configuration du plan de contrôle.
Recommandation de sidecar
ASM analyse les journaux d’accès générés par les sidecars afin de déterminer les dépendances d’appels entre les services. Sur la base de cette analyse, ASM recommande et crée une ressource Sidecar pour chaque charge de travail. Chaque ressource Sidecar limite la configuration de la charge de travail aux seuls services qu’elle appelle réellement.
Cette approche offre deux avantages :
Chaque sidecar ne stocke que les configurations des services liés à sa charge de travail.
Lorsqu’un service non lié est modifié, ou qu’une ressource telle qu’un virtual service d’un service lié est modifiée, le plan de contrôle ne pousse pas la nouvelle configuration vers ce sidecar.
Scénario applicable : Les sélecteurs de découverte de services seuls n’offrent pas une optimisation suffisante. Par exemple, un seul namespace contient un grand nombre de services et vous souhaitez minimiser la taille de la configuration des sidecars. ASM recommande et crée les ressources Sidecar sur la base de l’analyse des journaux d’accès, ce qui vous évite d’écrire manuellement des fichiers YAML.
Pour consulter l’impact mesuré sur les performances de push, voir Effets de la recommandation de sidecar sur l’optimisation du push de configuration.
Pour obtenir les instructions de configuration, consultez Utiliser les sidecars recommandés automatiquement sur la base de l’analyse des journaux d’accès.
Optimisation xDS adaptative
À l’instar de la recommandation de sidecar, l’optimisation xDS adaptative génère des ressources Sidecar par charge de travail pour définir le périmètre des configurations. Elle s’en distingue toutefois par les aspects suivants :
Entièrement automatique. Les ressources Sidecar sont générées et mises à jour automatiquement lorsque les dépendances d’appels évoluent. Aucune configuration manuelle ni recommandation périodique n’est nécessaire.
Aucune dépendance envers Log Service. Cette fonctionnalité ne nécessite pas l’activation de Log Service pour collecter les journaux d’accès sur le plan de données.
Basée sur une passerelle de sortie. Une passerelle de sortie nommée
istio-axds-egressgatewayest déployée sur le plan de données. La fonctionnalité s’applique uniquement aux charges de travail que vous sélectionnez. Tout le trafic HTTP provenant des charges de travail sélectionnées est acheminé via cette passerelle, que le plan de contrôle utilise pour analyser les dépendances d’appels.
Scénario applicable : Vous recherchez la méthode la plus simple pour optimiser le push de configuration, en particulier si vous ne maîtrisez pas les ressources Sidecar ou le réglage manuel de la configuration.
La passerelle de sortie peut affecter le routage du trafic sur le plan de données et consommer des ressources du plan de contrôle. Ajoutez progressivement les charges de travail au périmètre de la fonctionnalité afin d’éviter toute interruption.
Pour obtenir les instructions de configuration, consultez Utiliser l’optimisation xDS adaptative pour améliorer l’efficacité du push de configuration du plan de contrôle.