Dépanner Cloud Service Mesh étape par étape
Cette section explique comment dépanner et résoudre les problèmes lors de l'utilisation Cloud Service Mesh. Si vous avez besoin d'une aide supplémentaire, consultez la page Obtenir de l'aide.
Procédure de dépannage
Suivez les étapes générales ci-dessous pour résoudre les problèmes liés à Cloud Service Mesh :
- Utilisez les outils automatisés de validation.
- Vérifiez si vous rencontrez un problème courant dont la solution est connue.
- Affinez le champ d'application du problème.
- Examinez les informations et les journaux pertinents.
- Recueillez les journaux de diagnostic et demandez de l'aide.
Utiliser des outils automatisés de validation
Cloud Service Mesh inclut des outils automatisés de diagnostic et de validation de la configuration qui peuvent résoudre les problèmes et 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 ces 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 dans ces sections des problèmes et des résolutions, regroupées par fonctionnalité Cloud Service Mesh domaine:
- Problèmes d'installation
- Problèmes liés au plan de contrôle géré
- Problèmes d'observabilité
- Problèmes de déploiement hors de Google Cloud
- Problèmes de proxy
- Problèmes liés aux ressources
- Problèmes de scaling
- Problèmes de sécurité
- Problèmes de gestion du trafic
- Problèmes liés aux webhooks
- Problèmes liés aux proxys side-car
Si le problème persiste, consultez la section suivante.
Affiner le champ d'application du problème
Cloud Service Mesh repose sur plusieurs technologies qui fonctionnent ensemble, ce qui signifie que certains types de problèmes sont associés à des domaines fonctionnels particuliers ou composants. 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 Cloud 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 utilisés par Cloud Service Mesh génère et comment interpréter les informations qu'elles contiennent, consultez Interpréter les journaux Cloud Service Mesh