Observation du trafic Istio
Journalisez et surveillez les applications qui sont gérées par Istio sur IBM Cloud Kubernetes Service.
Activation des journaux d'accès pour l'ensemble du maillage
Pour activer les journaux d'accès Envoy pour l'ensemble du maillage, vous pouvez utiliser la ressource managed-istio-custom
ConfigMap, qui se trouve dans l'espace de nom ibm-operators
fourni par le module complémentaire
Istio. Pour activer les journaux d'accès Envoy, éditez la ressource managed-istio-custom
ConfigMap et ajoutez la paire clé-valeur istio-global-proxy-accessLogFile: "dev/stdout"
. Pour plus d'informations,
voir Personnalisation de l'installation Istio.
Activation des journaux d'accès pour des conteneurs individuels
A partir de la version 1.18, le module complémentaire Istio fournit l'option permettant d'activer les journaux d'accès Envoy pour des conteneurs individuels à l'aide de CRs de télémétrie. Pour configurer des ressources personnalisées de télémétrie, utilisez la définition de télémétrie suivante.
apiVersion: telemetry.istio.io/v1alpha1
kind: Telemetry
metadata:
name: example-telemetry-enabling-envoy-access-logs
namespace: <namespace> # Pod's namespace
spec:
selector:
matchLabels:
<key>: <value> # Pod's label
accessLogging:
- providers:
- name: enable-targeted-envoy-access-logs
Modifiez l'exemple de définition précédent pour qu'il contienne l'espace de nom et le libellé de votre pod. Une fois la définition de télémétrie appliquée, vous pouvez voir les journaux d'accès Envoy via le conteneur istio-proxy
.
Configuration de la journalisation avec IBM Cloud Logs
Gérez de manière transparente les journaux de votre conteneur d'applications et du conteneur sidecar proxy Envoy dans chaque pod en déployant des agents de journalisation sur vos nœuds de travail pour transférer les journaux vers IBM Cloud Logs.
Pour utiliser IBM Cloud Logs, vous déployez un agent de journalisation sur chaque nœud de travail de votre cluster. Cet agent collecte les journaux avec l'extension *.log
et les fichiers sans extension stockés dans le répertoire
/var/log
de votre pod à partir de tous les espaces de noms, y compris kube-system
. Ces journaux comprennent les journaux de votre conteneur d'application et du conteneur de proxy sidecar Envoy dans chaque pod. L'agent
transfère ensuite les journaux au service IBM Cloud Logs.
Pour commencer, configurez la journalisation de votre cluster en suivant la procédure indiquée dans Gestion des journaux de cluster Kubernetes avec IBM Cloud Logs.
Configuration de la surveillance avec IBM Cloud Monitoring
Obtenez davantage de visibilité sur les performances et l'état de santé de vos applications gérées par Istio en déployant un agent Monitoring sur vos noeuds worker afin d'acheminer des métriques à IBM Cloud® Monitoring.
Pour déployer des agents de surveillance sur votre cluster, procédez comme suit.
-
Dans la console de surveillance, cliquez sur Ouvrir le tableau de bord pour l'instance que vous avez provisionnée.
-
Dans l'interface utilisateur de Monitoring, cliquez sur Add new dashboard.
-
Recherchez
Istio
et sélectionnez l'un des tableaux de bord Istio prédéfinis d' Monitoring.
Pour plus d'informations sur les métriques et les tableaux de bord de référence, la surveillance des composants internes d'Istio et la surveillance des déploiements A/B et canari d'Istio, consultez l'article de blog How to monitor Istio, the Kubernetes.
Lancement des tableaux de bord d'inspection des composants ControlZ et sidecar Envoy
Pour inspecter des composants spécifiques d'Istio, lancez les tableaux de bord ControlZ et Envoy.
Le tableau de bord ControlZ accède aux ports des composants Istio pour fournir une vue interactive de l'état interne de chaque composant. Le tableau de bord Envoy fournit des informations de configuration et des métriques pour un proxy sidecar Envoy qui s'exécute dans un pod d'application.
Avant de commencer
- Installez le module complémentaire géré
istio
dans un cluster. - Installez l'interface de ligne de commande
istioctl
.
ControlZ
-
Obtenez le nom de pod pour le composant Istio que vous souhaitez inspecter. Vous pouvez inspecter les pods de composant pour
istio-citadel
,istio-galley
,istio-pilot
,istio-policy
etistio-telemetry
.kubectl get pods -n istio-system | grep istio
Exemple de sortie
NAME READY STATUS RESTARTS AGE istio-citadel-869c7f9498-wtldz 1/1 Running 0 2m istio-egressgateway-69bb5d4585-qxxbp 1/1 Running 0 2m istio-galley-75d7b5bdb9-c9d9n 1/1 Running 0 2m istio-ingressgateway-5c8764db74-gh8xg 1/1 Running 0 2m istio-pilot-55fd7d886f-vv6fb 2/2 Running 0 2m istio-policy-6bb6f6ddb9-s4c8t 2/2 Running 0 2m istio-sidecar-injector-7d9845dbb7-r8nq5 1/1 Running 0 2m istio-telemetry-7695b4c4d4-tlvn8 2/2 Running 0 2m istio-tracing-55bbf55878-z4rd2 1/1 Running 0 2m
-
Accédez au tableau de bord ControlZ pour ce composant.
istioctl dashboard controlz <component_pod_name>.istio-system
Envoy
- Obtenez le nom du pod d'application où vous voulez inspecter le conteneur sidecar Envoy.
kubectl get pods -n <namespace>
- Accédez au tableau de bord Envoy pour ce pod.
istioctl dashboard envoy <pod-name>.<namespace>