Résoudre les problèmes liés à Anthos Service Mesh

Cette section explique comment résoudre les problèmes liés à l'utilisation d'Anthos Service Mesh. Si vous avez besoin d'une aide supplémentaire, consultez la page Assistance.

Procédure de dépannage

Suivez les étapes générales ci-dessous pour résoudre plus efficacement les problèmes liés à Anthos Service Mesh :

  1. Utilisez les outils automatisés de validation.
  2. Vérifiez si vous rencontrez un problème courant dont la solution est connue.
  3. Affinez le champ d'application du problème.
  4. Examinez les informations et les journaux pertinents.
  5. Recueillez les journaux de diagnostic et demandez de l'aide.

Erreurs kpt lors de l'installation

Lorsque vous installez Anthos Service Mesh à l'aide de install_asm avec une version non compatible de kpt, install_asm génère les messages d'erreur suivants :

    2021-07-14T15:54:58.380312 install_asm_1_9_3: Downloading ASM..
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 41.7M  100 41.7M    0     0  31.1M      0  0:00:01  0:00:01 --:--:-- 31.1M
    2021-07-14T15:54:59.777425 install_asm_1_9_3: Downloading ASM kpt package...
    2021-07-14T15:54:59.805267 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm'
    2021-07-14T15:54:59.832100 install_asm_1_9_3: -------------
    error: unknown flag: --auto-set
    2021-07-14T15:54:59.907493 install_asm_1_9_3: [WARNING]: Failed, retrying...(1 of 3)
    2021-07-14T15:55:01.936275 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm'
    2021-07-14T15:55:01.963543 install_asm_1_9_3: -------------
    error: unknown flag: --auto-set
    2021-07-14T15:55:02.043638 install_asm_1_9_3: [WARNING]: Failed, retrying...(2 of 3)
    2021-07-14T15:55:04.074541 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm'
    2021-07-14T15:55:04.101990 install_asm_1_9_3: -------------
    error: unknown flag: --auto-set
    2021-07-14T15:55:04.176750 install_asm_1_9_3: [WARNING]: Failed, retrying...(3 of 3)
    

Si ces erreurs se produisent, téléchargez la dernière version de install_asm. Le script install_asm doit correspondre à l'une des versions suivantes ou à une version ultérieure :

  • Pour les versions 1.8 à 1.8.6-asm.5+config1
  • Pour les versions 1.9 à 1.9.6-asm.2+config1
  • Pour les versions 1.10 et 1.10.2-asm.3+config1

Si vous téléchargez anthos-service-mesh-package pour installer Anthos Service Mesh à l'aide de istioctl install, si vous disposez d'une version non compatible de kpt, les messages d'erreur suivants s'affichent :

    Package "asm":
    Fetching https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages@release-1.10-asm
    From https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages
     * branch            release-1.10-asm -> FETCH_HEAD
    Error: Kptfile at "https:/github.com/GoogleCloudPlatform/anthos-service-mesh-packages/asm@release-1.10-asm" has an old version ("v1alpha1") of the Kptfile schema.
    Please update the package to the latest format by following https://kpt.dev/installation/migration.
    

L'installation d'Anthos Service Mesh nécessite une version antérieure à 1.x de kpt. Il est obligatoire que votre session d'interface système soit configurée pour utiliser kpt version 0.39.2. Vous pouvez exécuter la commande suivante pour obtenir votre version de kpt :

   kpt version

Le résultat ressemble à ce qui suit :

    0.39.2

Si une version de kpt ultérieure à la version 1.0 s'affiche, consultez la page Configurer votre environnement pour télécharger la version requise pour votre système d'exploitation.

Utiliser des outils automatisés de validation

Anthos Service Mesh inclut des outils automatisés de diagnostic et de validation de la configuration permettant de résoudre les problèmes et de vous aider à les éviter à l'avenir. Dans les sections suivantes, nous expliquons comment utiliser ces outils.

istioctl analyze

L'outil de diagnostic istioctl analyze peut détecter les problèmes de configuration courants. Installez istioctl en suivant instructions.

istioctl analyze lit une configuration de cluster et, s'il détecte un problème, fournit des messages d'information et suggère des solutions. Il peut s'exécuter sur un cluster actif ou sur un ensemble de fichiers de configuration locaux. Il peut également être exécuté sur une combinaison des deux, ce qui vous permet de détecter les problèmes avant d'appliquer des modifications à un cluster. Pour en savoir plus, consultez la page Diagnostiquer votre configuration avec istioctl analyze. Pour plus d'informations sur les erreurs détectées par istioctl analyze, consultez la section Messages d'analyse de la configuration.

Analyser un cluster actif

Analysez un cluster actif à l'aide de la commande suivante.

istioctl analyze -A

Si istioctl analyze détecte un problème avec votre configuration, il affiche un message contenant des informations utiles pour le résoudre, le cas échéant. Par exemple, si vous avez commis l'erreur courante de ne pas libeller correctement votre espace de noms pour activer l'injection side-car Istio, le message suivant est généré :

Warn [IST0102] (Namespace default) The namespace is not enabled for Istio injection.
Run 'kubectl label namespace default istio-injection=enabled' to enable it,
or 'kubectl label namespace default istio-injection=disabled'
to explicitly mark it as not needing injection

Si le problème persiste, consultez la section suivante pour vérifier si votre problème est déjà connu.

Rechercher des problèmes courants et leurs solutions

Vous pouvez gagner du temps en vérifiant si vos symptômes correspondent à un problème figurant déjà dans les sections sur les problèmes courants et leurs solutions, qui sont groupées par domaine fonctionnel Anthos Service Mesh :

Si le problème persiste, consultez la section suivante.

Affiner le champ d'application du problème

Anthos Service Mesh repose sur plusieurs technologies qui fonctionnent ensemble, ce qui signifie que certains types de problèmes sont associés à des composants ou domaines fonctionnels spécifiques. Chacun de ces composants génère des journaux utiles. Avant de tenter d'analyser manuellement la grande quantité d'informations qu'ils fournissent, affinez le champ d'application de dépannage en répondant aux questions suivantes :

  • Le problème se produit-il dans le plan de contrôle ou le plan de données, par exemple istiod ou les proxys Envoy ?
  • Dans quel domaine fonctionnel rencontrez-vous le problème, par exemple la mise en réseau, la télémétrie, la sécurité, etc. ?
  • Y a-t-il une perte de trafic à l'échelle du maillage de services ou dans un déploiement spécifique ?
  • Le problème apparaît-il ou s'aggrave-t-il en raison d'une incapacité à adapter le trafic au maillage de services ?
  • Le problème peut-il causer une latence ou d'autres problèmes de performances ?
  • Pouvez-vous reproduire le problème sur demande ?
  • Le problème a-t-il commencé après une modification récente de la configuration dans Istio, GKE, etc. ?
  • Y a-t-il une augmentation ou un pic de trafic dans le maillage de services ?
  • Des fonctionnalités notables sont-elles activées pour ce cluster, ou celui-ci comporte-t-il des déploiements inhabituels ?
  • Observez-vous une utilisation intensive du processeur ou de la mémoire ? Si oui, quelle est l'utilisation prévue à grande échelle ?
  • Existe-t-il des restrictions de quota à prendre en compte ?

Afficher l'état du plan de contrôle

Les commandes suivantes peuvent vous aider à comprendre l'état du plan de contrôle d'Anthos Service Mesh :

  • kubectl get pods -n istio-system
  • kubectl describe -n istio-system
  • Pour tous les pods dans istio-system : kubectl logs -n istio-system -l istio --all-containers
  • istioctl version
  • istioctl proxy-status
  • kubectl get configmap istio -o yaml && kubectl get configmap istio-sidecar-injector -o yaml
  • kubectl top pods -n istio-system

Utilisez les commandes suivantes pour comprendre l'ampleur du déploiement :

  • kubectl get nodes
  • kubectl get services --all-namespaces
  • kubectl get pods --all-namespaces

Examiner les informations et les journaux pertinents

Une fois que vous avez déterminé le champ d'application du problème, vous pouvez vous concentrer sur certains journaux et certaines informations de manière plus efficace. Pour en savoir plus sur les journaux générés par Anthos Service Mesh et apprendre à interpréter les informations qu'ils contiennent, consultez la page Interpréter les journaux Anthos Service Mesh.