Surveillance de l' Kubernetes dans Instana à l'aide de graphiques OpenTelemetry Helm
Instana offre une intégration transparente avec OpenTelemetry pour une surveillance Kubernetes complète.
OpenTelemetry Kubernetes Ingestion des données vers le backend d' Instana
Instana prend en charge la surveillance complète de l' Kubernetes grâce à l'intégration d' OpenTelemetry. OpenTelemetry Kubernetes Les données peuvent être directement ingérées dans le backend d' Instana et affichées dans l'interface utilisateur d' Instana.
Processus de configuration :
OpenTelemetry Kubernetes Ingestion de données via l'agent d' Instana
L'agent Instana facilite l'ingestion des données OpenTelemetry Kubernetes vers le backend Instana qui affiche les données télémétriques dans l'interface utilisateur Instana.
Processus de configuration :
Configurer le collecteur d' OpenTelemetry
Pour configurer le collecteur d' OpenTelemetry s pour Kubernetes à l'aide des graphiques Helm, vous avez besoin de deux fichiers yaml pour initialiser les valeurs.
Configurer les récepteurs pour collecter les données télémétriques d' Kubernetes
Créez un fichier YAML contenant les valeurs d'
helmValuesDaemonset.yamlDaemonSet avec le contenu suivant à un emplacement connu :Créez un autre fichier
helmValuesDeployment.yamlYAML contenant les valeurs d' DeploymentSet avec le contenu suivant à un emplacement connu :
Configurer les attributs des ressources
Instana utilise les attributs de ressources définis dans les tableaux d' Helm s pour nommer et étiqueter le cluster d' Kubernetes s surveillé qui s'affiche dans l'interface utilisateur Instana. Le tableau suivant présente les attributs de ressource utilisés en interne par Instana.
| Attributs de ressource | Description | Valeur d'échantillon |
|---|---|---|
| k8s.cluster.name | Nom du cluster d' Kubernetes | otelClusterForDemo |
| k8s.cluster.distribution | Nom de la distribution du cluster | kubernetes |
| k8s.cluster.managedBy | Nom de l'organisation gestionnaire du cluster | CNF |
| k8s.cluster.shortName | Nom abrégé du cluster | oTelShortName |
| k8s.cluster.fullName | Nom complet du cluster | Kubernetes |
| k8s.cluster.version | Version du cluster | 1.27052025 |
| k8s.namespace.name | Espace de noms de l' Kubernetes | cluster-test-hôtel |
| INSTANA_PLUGIN | Constante obligatoire pour utilisation interne par Instana | k8s |
Les attributs de ressource sont définis dans le cadre du processeur d'attributs de ressource, dans les graphiques de configuration du collecteur « OpenTelemetry » helm.
Configurer l'exportation des données télémétriques vers l'agent Instana
OpenTelemetry Collector peut être configuré pour exporter les données d' Kubernetes s de télémétrie vers l'agent Instana en modifiant les exportateurs.
exporters:
otlp/ins:
endpoint: 'http://9.43.49.227:4317' # Instana agent endpoint for OpenTelemetry. For example, "http://9.109.219.165:4317".
tls:
insecure: true
L'exportateur doit également être ajouté au pipeline d' OpenTelemetry.
service:
pipelines:
metrics:
exporters: [otlp/ins]
Configurer l'exportation des données télémétriques vers le backend d' Instana
OpenTelemetry Collector peut être configuré pour exporter les données d' Kubernetes s de télémétrie vers le backend Instana. Un en-tête supplémentaire dans l'exportateur otlp doit contenir la clé de l'agent (généralement la clé de téléchargement de l'agent) à des fins d'authentification. Pour ce faire, il suffit de modifier les exportateurs :
exporters:
otlp/ins:
endpoint: 'https://otlp-blue-saas.instana.io:4317' # Instana backend endpoint for OpenTelemetry. For example, "https://otlp-blue-saas.instana.io:4317".
tls:
insecure: true
headers:
x-instana-key: agentDownloadKey # The agent download key can be found in the agent page along with one-line installation of the agent in linux distributions.
service:
pipelines:
metrics:
exporters: [otlp/ins]
Installez le collecteur d' OpenTelemetry s à l'aide des graphiques Helm
Pour surveiller Kubernetes avec OpenTelemetry,, installez le collecteur OpenTelemetry à l'aide de la méthode du graphique Helm, car elle offre des options de configuration simples qui facilitent le processus.
Pour collecter les signaux Kubernetes, vous devez installer les collecteurs OpenTelemetry suivants :
Le tableau d' Helm s pour OpenTelemetry Collector nécessite de définir un mode (daemonset ou deployment). Ce mode détermine le type d'installation dans l'environnement d' Kubernetes.
Pour installer OpenTelemetry Collector dans un environnement Kubernetes, procédez comme suit.
Ajoutez le dépôt OpenTelemetry Helm en exécutant les commandes suivantes :
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-chartsInstallez le mode daemonset d' OpenTelemetry Collector en suivant les étapes suivantes :
Exécutez la commande Helm suivante pour installer le mode daemonset du collecteur :
helm install otel-k8s open-telemetry/opentelemetry-collector --values <<values file>>Remplacez
values filepar le nom de votre fichier de valeurs.Par exemple, si le fichier de valeurs s'appelle
helmValuesDaemonset.yaml, utilisez la commande suivante :helm install otel-k8s open-telemetry/opentelemetry-collector --values helmValuesDaemonset.yamlInstallez le mode de déploiement d' OpenTelemetry Collector en suivant les étapes suivantes : Exécutez la commande Helm suivante pour installer le mode de déploiement du collecteur :
helm install otel-k8s-dep open-telemetry/opentelemetry-collector --values <<values file>>Remplacez
values filepar le nom de votre fichier de valeurs.Par exemple, si le fichier de valeurs s'appelle
helmValuesDeployment.yaml, utilisez la commande suivante :helm install otel-k8s-dep open-telemetry/opentelemetry-collector --values helmValuesDeployment.yamlVérifiez l'installation d' OpenTelemetry Collector en exécutant la commande Kubernetes suivante :
kubectl get pods -AL'image suivante montre un résultat typique de l'installation du collecteur d' OpenTelemetry s :

Désinstallation du collecteur d' OpenTelemetry
La désinstallation du collecteur OpenTelemetry pour Kubernetes équivaut à la désinstallation des graphiques Helm.
Si vous souhaitez désinstaller à la fois le daemonset et le mode de déploiement d' OpenTelemetry Collector, exécutez la commande suivante :
helm uninstall otel-k8s-dep
helm uninstall otel-k8s
Affichage des ressources d' Kubernetes s dans Instana
Une fois que vous avez installé et configuré le collecteur d' OpenTelemetry, vous pouvez afficher les ressources d' Kubernetes dans l'interface utilisateur d' Instana.
Traitement des incidents
Vous pouvez rencontrer les problèmes suivants lors de la surveillance d' Kubernetes s avec le collecteur OpenTelemetry.
CrashImageBackOff dans l' Kubernetes
Le collecteur d' OpenTelemetry s quitte dans certains environnements Kubernetes avec le message « CrashImageBackOff » (Échec de l'activation) et ne parvient pas à s'activer. Pour résoudre ce problème, mettez à jour le port de disponibilité ou de réactivité par défaut dans le fichier yaml comme indiqué dans l'exemple suivant :
config:
extensions:
health_check:
endpoint: ${env:MY_POD_IP}:31000
livenessProbe:
initialDelaySeconds: 60
httpGet:
path: /
port: 31000
readinessProbe:
initialDelaySeconds: 60
httpGet:
path: /
port: 31000
Configurer un proxy pour envoyer des données au serveur backend
Si votre environnement nécessite un proxy pour acheminer les signaux d' OpenTelemetry s vers le backend ou l'agent d' Instana, configurez les variables d'environnement suivantes.
Variables d'environnement du proxy :
HTTP_PROXY: Adresse du serveur proxy de l' HTTPHTTPS_PROXY: Adresse du serveur proxy de l' HTTPSNO_PROXY: Liste d'adresses séparées par des virgules qui doivent contourner le proxy
Lorsque vous surveillez Kubernetes avec HTTPS_PROXY ou HTTP_PROXY configuré, le récepteur kubelet utilise également le proxy pour récupérer les métriques d' Kubernetes. Ce comportement peut entraîner des erreurs de réception, car le proxy n'est pas un serveur kubelet. Pour résoudre ce problème, ajoutez les plages d'adresses IP de vos pods et nœuds à la variable NO_PROXY afin que le récepteur kubelet puisse communiquer directement avec le serveur Kubernetes API.
Exemple de configuration :
env:
- name: HTTPS_PROXY
value: 'http://proxy.example.com:8080'
- name: HTTP_PROXY
value: 'http://proxy.example.com:8080'
- name: NO_PROXY
value: '10.10.10.0/24,192.168.0.0/16,localhost,127.0.0.1,.svc,.svc.cluster.local'
Consignes de configuration NO_PROXY :
10.10.10.0/24- Remplacez par la plage CIDR de votre nœud de cluster192.168.0.0/16- Remplacez par la plage CIDR de votre réseau de podslocalhost,127.0.0.1- Adresses de boucle locale.svc,.svc.cluster.local- Suffixes DNS du service Kubernetes
Pour déterminer les plages CIDR de votre cluster :
# Get node CIDR range
kubectl get nodes -o jsonpath='{.items[*].spec.podCIDR}'
# Get service CIDR range
kubectl cluster-info dump | grep -m 1 service-cluster-ip-range