Partager via


Résolution des problèmes liés au module complémentaire MeshConfig du maillage de service Istio

Cet article explique comment résoudre les problèmes qui se produisent lorsque vous utilisez MeshConfig pour configurer le module complémentaire Istio Service Mesh pour Microsoft Azure Kubernetes Service (AKS).

Configuration de ConfigMap partagée

Le module complémentaire Istio MeshConfig vous permet de configurer certains paramètres à l’échelle du maillage. Pour ce faire, vous créez un ConfigMap local dans l’espace aks-istio-system de noms. Ensuite, le plan de contrôle Istio fusionne ce ConfigMap avec le ConfigMap par défaut. (Si un conflit existe entre les paramètres, les paramètres par défaut sont prioritaires.) Cette approche est appelée configuration ConfigMap partagée.

Créez un ConfigMap nommé istio-shared-configmap-<asm-revision> dans l’espace aks-istio-system de noms. Par exemple, si vous utilisez la révisionasm-1-18, vous devez nommer configMap. istio-shared-configmap-asm-1-18 Ensuite, vous fournissez la configuration de maillage dans le mesh champ de la data section, comme indiqué dans le fichier YAML ConfigMap suivant :

apiVersion: v1
kind: ConfigMap
metadata:
  name: istio-shared-configmap-asm-1-18
  namespace: aks-istio-system
data:
  mesh: |-
    accessLogFile: /dev/stdout
    defaultConfig:
      holdApplicationUntilProxyStarts: true

Les valeurs dans le champ sont les paramètres à l’échelle du defaultConfig maillage pour le side-car Envoy.

Mises à niveau de Canary

Avant de commencer une mise à niveau canary, suivez la configuration du maillage et les instructions de mise à niveau pour créer une deuxième configuration partagée ConfigMap pour la nouvelle révision du plan de contrôle dans l’espace aks-istio-system de noms.

Si un nouveau ConfigMap n’a pas été créé avant de commencer la mise à niveau, toutes les fonctionnalités configurées par le ConfigMap partagé ne seront pas accessibles. Pour résoudre ce problème, créez le ConfigMap manquant pour la révision correspondante et copiez-le sur les champs pertinents de la configuration partagée précédente.

Pour plus d’informations, consultez Mettre à niveau le module complémentaire de maillage de service basé sur Istio pour Azure Kubernetes Service et istio service mesh pour la résolution des problèmes de mise à niveau de révision mineure.

Valeurs autorisées, prises en charge et non autorisées

Le module complémentaire Istio désigne les champs MeshConfig comme autorisés et supported, autorisés, mais unsupportedet disallowed. Pour en savoir plus sur les champs MeshConfig autorisés et pris en charge pour le module complémentaire, et voir une vue d’ensemble des différents niveaux de support, consultez Configurer le module complémentaire Maillage de service basé sur Istio pour Azure Kubernetes Service. Si les champs mentionnés dans la documentation Istio en amont n’apparaissent pas dans la liste verte du module complémentaire, ces champs ne sont pas autorisés.

Liste de contrôle pour la résolution des problèmes

Étape 1 : Vérifiez que vous modifiez le configMap correct

  • Vérifiez que vous configurez le ConfigMap partagé (par exemple) istio-shared-configmap-asm-1-17et ne modifiez pas le ConfigMap par défaut (par exemple). istio-asm-1-17
  • Assurez-vous que le ConfigMap partagé pointe vers la révision correcte dans son titre.

Étape 2 : Supprimer les retraits de tabulation de la définition MeshConfig dans le ConfigMap partagé

Dans la définition MeshConfig dans le ConfigMap partagé (sous data.mesh), assurez-vous d’utiliser des espaces plutôt que des onglets. Supprimez les caractères d’onglet que vous trouvez.

Étape 3 : Vérifier que les champs MeshConfig sont valides

Si les champs ne sont pas reconnus ou ne sont pas inclus dans la liste verte MeshConfig, les mises à jour de MeshConfig sont rejetées. Vérifiez si les champs MeshConfig souhaités sont autorisés et vérifiez que les champs sont correctement orthographiés.

Étape 4 : Éviter la surcharge CoreDNS

Les problèmes liés à la surcharge CoreDNS peuvent vous obliger à modifier certains paramètres DNS Istio, tels que le dnsRefreshRate champ de la définition Istio MeshConfig.

Étape 5 : Résoudre les problèmes de consommation de mémoire

Si vous rencontrez une consommation élevée de mémoire dans Envoy, vérifiez deux fois vos paramètres Envoy pour la collecte des données de statistiques. Si vous personnalisez des métriques Istio via MeshConfig, n’oubliez pas que certaines métriques peuvent avoir une cardinalité élevée et, par conséquent, entraîner une empreinte mémoire plus élevée.

Nous vous recommandons d’utiliser le discoverySelectors champ dans la définition MeshConfig pour réduire la consommation de mémoire pour Istiod et Envoy. Pour plus d’informations, consultez La résolution des problèmes généraux du module complémentaire Istio Service Mesh.

Étape 6 : Cœurs de processeur gratuits

Si tous les cœurs du processeur sont en cours d’utilisation, le concurrency champ de la définition MeshConfig peut être mal configuré. Si ce champ est défini sur zéro, Envoy utilise tous les cœurs du processeur. Dans ce cas, supprimez concurrency de la définition MeshConfig. Si le concurrency champ n’est pas configuré, les demandes et limites du processeur déterminent le nombre de cœurs d’UC utilisés à la place.

Étape 7 : Corriger les conditions de course des pods et des sidecars

Si votre pod d’application démarre avant le démarrage du side-car Envoy, l’application peut ne pas répondre ou redémarrer. Pour obtenir des instructions sur la façon d’éviter ce problème, consultez Pod ou conteneurs qui commencent par des problèmes réseau si istio-proxy n’est pas prêt. Plus précisément, vous pouvez définir le holdApplicationUntilProxyStarts champ MeshConfig sous defaultConfig pour vous aider à true empêcher ces conditions de concurrence.

References

Exclusion de responsabilité de tiers

Les produits tiers mentionnés dans le présent article sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft exclut toute garantie, implicite ou autre, concernant les performances ou la fiabilité de ces produits.

Exclusion de responsabilité sur les coordonnées externes

Microsoft fournit des informations de contacts externes afin de vous aider à obtenir un support technique sur ce sujet. Ces informations de contact peuvent changer sans préavis. Microsoft ne garantit pas l’exactitude des informations concernant les sociétés externes.

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.