Administration de l'agent « Instana » sur Kubernetes
Une fois l'agent installé, configurez-le et gérez-le selon vos besoins. Consultez les sections suivantes pour connaître toutes les options de configuration des agents disponibles sur Kubernetes.
Vérification de l'état de l'agent hôte
Une fois l'agent hôte installé, vérifiez son état dans l'interface utilisateur d' Instana ou directement sur l'hôte. Pour plus d'informations, voir Vérification de l'état de l'agent hôte.
Configuration de l'agent
Vous pouvez configurer l'agent sur Kubernetes soit à l'aide du fichier de configuration de l'agent, soit à l'aide de variables d'environnement.
Configuration de l'agent à l'aide du fichier de configuration
La procédure de configuration de l'agent varie selon que vous l'avez installé via l'opérateur ou à l'aide du tableau « Helm ».
Configuration de l'agent à l'aide du fichier de configuration dans une installation opérateur
Pour configurer l'agent installé à l'aide de l'opérateur, procédez comme suit :
Ouvrez le fichier de ressource personnalisée
instana-agent.customresource.yaml« YAML ».Enregistrez vos configurations sous "
spec.agent.configuration_yaml. Voir l'exemple suivant :spec: agent: configuration_yaml: | # Example of configuration yaml template # Host com.instana.plugin.host: tags: - 'dev' - 'app1'Appliquez les modifications en exécutant la commande suivante :
kubectl apply -f instana-agent.customresource.yaml
Pour un exemple détaillé du fichier « YAML », consultez instana_v1_extended_instanaagent.yaml.
Pour obtenir un aperçu complet des options de configuration disponibles dans le fichier de configuration, consultez la section « Configuration des agents hôtes à l'aide du fichier de configuration de l'agent ».
Configuration de l'agent à l'aide du fichier de configuration dans une installation de diagramme d' Helm
Pour configurer l'agent « Instana » installé via le tableau « Helm », procédez de l'une des manières suivantes :
Méthode 1 : À l'aide d'un values.yaml fichier
Ajoutez la configuration au fichier de configuration du graphique values.yaml« Helm ». Transmettez le fichier aux commandes d'installation ` Helm ` (pendant l'installation) ou de mise à niveau ` Helm ` (après l'installation) à l'aide de -f values.yaml l'option `-f`.
- Créez ou modifiez le
values.yamlfichier contenant la configuration de votre agent :agent: configuration_yaml: | # Example of configuration yaml template # Host com.instana.plugin.host: tags: - 'dev' - 'app1' - Appliquez la configuration suivante lors de l'installation :
helm install instana-agent \ --repo https://agents.instana.io/helm \ --namespace instana-agent \ --create-namespace \ --set agent.key=<your_agent_key> \ --set agent.endpointHost='<your_host_agent_endpoint>' \ --set agent.endpointPort=443 \ --set cluster.name='<your_cluster_name>' \ --set zone.name='<zone_name>' \ -f values.yaml \ instana-agent - Mettez à jour une installation existante avec la configuration suivante :
helm upgrade instana-agent \ --repo https://agents.instana.io/helm \ --namespace instana-agent \ -f values.yaml \ instana-agent
Méthode 2 : Utilisation d'un fichier configuration.yaml distinct
Créez un fichier configuration.yaml distinct contenant la configuration de votre agent et transmettez-le directement à l'aide de --set l'option avec substitution de commande.
- Créez un
configuration.yamlfichier contenant la configuration de votre agent :# Example of configuration yaml template # Host com.instana.plugin.host: tags: - 'dev' - 'app1' - Appliquez la configuration suivante lors de l'installation :
helm install instana-agent \ --repo https://agents.instana.io/helm \ --namespace instana-agent \ --create-namespace \ --set agent.key=<your_agent_key> \ --set agent.endpointHost='<your_host_agent_endpoint>' \ --set agent.endpointPort=443 \ --set cluster.name='<your_cluster_name>' \ --set zone.name='<zone_name>' \ --set agent.configuration_yaml="$(cat configuration.yaml)" \ instana-agent - Mettez à jour une installation existante avec la configuration suivante :
helm upgrade instana-agent \ --repo https://agents.instana.io/helm \ --namespace instana-agent \ --set agent.configuration_yaml="$(cat configuration.yaml)" \ instana-agent
Pour plus d'informations sur la liste de tous les paramètres de configuration, consultez le tableau disponible à l'adresse InstanaHelm.
Configuration de l'agent à l'aide de variables d'environnement
La procédure de configuration de l'agent varie selon que vous l'avez installé via l'opérateur ou à l'aide du tableau « Helm ».
Pour obtenir la liste complète des variables d'environnement disponibles, consultez la section « Variables d'environnement pour l'agent hôte ».
Configuration de l'agent à l'aide de variables d'environnement dans une installation d'opérateur
Pour configurer les variables d'environnement de l'agent d' Instana, installé via l'opérateur, procédez comme suit :
Ouvrez le fichier de ressource personnalisée
instana-agent.customresource.yaml« YAML ».Enregistrez vos configurations sous "
spec.agent.configuration_yaml. Voir l'exemple suivant :spec: agent: env: INSTANA_AGENT_TAGS: dev JAVA_OPTS: -Xms<value>Appliquez les modifications en exécutant la commande suivante :
kubectl apply -f instana-agent.customresource.yaml
Pour un exemple détaillé du fichier « YAML », consultez instana_v1_extended_instanaagent.yaml.
Configuration de l'agent à l'aide de variables d'environnement dans une installation de Chart sur Helm
Pour configurer les variables d'environnement de l'agent « Instana » installé à l'aide du chart « Helm », procédez de l'une des manières suivantes :
- Ajoutez les variables d'environnement au fichier de configuration du tableau
values.yaml« Helm ». Transmettez le fichier aux commandes d'installation ` Helm ` (pendant l'installation) ou de mise à niveau ` Helm ` (après l'installation) à l'aide de-f values.yamll'option `-f`.
Voici un exemple du fichier values.yaml : yaml {: codeblock} agent: env: INSTANA_AGENT_TAGS: dev JAVA_OPTS: -Xms<value>
- Spécifiez la configuration directement sur la ligne de commande à l'aide de l'option
--set agent.env.<KEY>=<VALUE>.
Personnalisation de la configuration de l'agent
Après l'installation de l'agent hôte, les fichiers de configuration suivants sont créés :
/opt/instana/agent/etc/mvn-settings.xml
/opt/instana/agent/etc/org.ops4j.pax.url.mvn.cfg
/opt/instana/agent/etc/instana/com.instana.agent.bootstrap.AgentBootstrap.cfg
/opt/instana/agent/etc/instana/com.instana.agent.main.config.Agent.cfg
/opt/instana/agent/etc/instana/com.instana.agent.main.config.UpdateManager.cfg
/opt/instana/agent/etc/instana/com.instana.agent.main.sender.Backend.cfg
/opt/instana/agent/etc/instana/configuration.yaml
Vous pouvez personnaliser la configuration de l'agent selon vos besoins. Par exemple, vous pouvez modifier le port et le nom d'hôte d' TCP du backend Instana et des services auxquels votre agent hôte se connecte, configurer l'agent pour qu'il envoie des rapports à plusieurs backends, ou configurer l'utilisation d'un proxy pour la communication indirecte entre l'agent hôte et le backend Instana.
Pour plus d'informations sur la personnalisation de la configuration de l'agent, voir les rubriques suivantes :
- Journalisation de l'agent
- Configuration du backend d' Instana
- Configuration du mode de l'agent hôte
- Configuration des agents hôtes à l'aide du fichier de configuration des agents
- Conversion d'un agent statique en agent dynamique
- Limitation de l'unité centrale et de la mémoire de l'agent hôte
- Récupération de la version actuelle des agents dynamiques
- Mise en place d'un proxy d'agent
- Configuration du chiffrement « TLS » pour le terminal de l'agent
- Intervalle de mise à jour des agents dynamiques
- Épinglage des versions des agents dynamiques
Mise à jour de l'installation de l'agent
Selon la méthode d'installation utilisée, vous pouvez mettre à jour l'agent « Instana » pour « Kubernetes » de plusieurs façons.
Mise à jour d'une installation d'opérateur
La mise à jour de l'installation de l'agent se fait en deux étapes :
- Mise à jour de l'opérateur
- Mise à jour des images
Pour mettre à jour l'opérateur, procédez comme suit :
Sur la page d'accueil de l'interface utilisateur d' Instana, cliquez sur « Agents et collecteurs ». Dans l'onglet « Agents » de l' Instana, sélectionnez « Installer les agents ».
Sur la page du catalogue de déploiement de l'agent, cliquez sur la tuile OpenShift - Operator.
Copiez et exécutez la commande pour déployer le nouvel opérateur. Voir l'exemple de commande suivant :
kubectl apply -f https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yamlRemarque : pour mettre à jour l'opérateur vers une version spécifique, exécutez la commande suivante :
Pour consulter la liste des versions disponibles pour les opérateurs, reportez-vous aux notes de mise à jour de l'agent opérateur d' Instana.kubectl apply -f https://github.com/instana/instana-agent-operator/releases/download/<operator_version>/instana-agent-operator.yaml
Une fois l'opérateur mis à jour, passez à la mise à jour des images.
Mise à jour d'une installation d' Helm
La mise à jour de l'installation de l'agent se fait en deux étapes :
- Mise à jour du graphique Helm
- Mise à jour des images
Pour mettre à jour le graphique d' Helm s des agents, exécutez la commande suivante :
helm pull --repo https://agents.instana.io/helm --untar instana-agent && kubectl apply -f instana-agent/crds; helm upgrade --namespace instana-agent instana-agent \
--repo https://agents.instana.io/helm instana-agent \
--reuse-values
instana-agent/crds dossier. Par conséquent, cette kubectl apply -f instana-agent/crds étape n'est pas nécessaire.Une fois le tableau « Helm » mis à jour, passez à la mise à jour des images.
Mise à jour des images
Le DaemonSet 'instana-agent et le déploiement 'k8sensor sont configurés pour extraire la dernière image au démarrage du pod. Pour forcer la mise à jour, exécutez les commandes suivantes :
kubectl rollout restart ds instana-agent -n instana-agent
kubectl rollout restart deployment instana-agent-k8sensor -n instana-agent
Instana ne propose pas de mécanisme permettant de mettre à jour automatiquement ces images. Vous pouvez utiliser des solutions adaptées à vos besoins, telles que CronJobs celles offrant des privilèges suffisants pour restart les charges de travail, ou des outils plus avancés de gestion des identités et des accès ( Kubernetes ) GitOps, comme les automatisations de mise à jour des images proposées par la Fondation CNCF FluxCD.
Gérer les agents à l'aide du tableau de bord de gestion des agents
Vous pouvez effectuer les opérations suivantes à l'aide du tableau de bord de gestion des agents dans l'interface utilisateur d' Instana :
- Changement de mode de fonctionnement des agents
- Modifier le niveau d'enregistrement
- Mise à jour des agents
- Réinitialisation des agents
- Agents de redémarrage
- Visualisation des capteurs
- [Gestion de la configuration]
- Surveillance automatique
Pour ouvrir le tableau de bord de gestion des agents, procédez comme suit :
- Dans la barre latérale de l'interface utilisateur d' Instana, sélectionnez « Infrastructure ».
- Cliquez sur un hôte surveillé spécifique.
- Sur le tableau de bord de l'hôte, cliquez sur Ouvrir la gestion des agents.
Configuration de l'accès réseau pour les applications surveillées
Vous devez configurer l'accès réseau des types d'applications suivants pour qu'elles puissent communiquer avec l'agent :
- Node.js
- Go
- Ruby
- Python
- .NET Core
Ces applications doivent connaître l'adresse IP sur laquelle l'agent est à l'écoute. L'agent hôte écoute automatiquement l'IP de l'hôte. Vous pouvez utiliser l'extrait de code d' API descendante suivant pour transmettre l'adresse IP de l'hôte, via une variable d'environnement, au pod de l'application :
spec:
containers:
env:
- name: INSTANA_AGENT_HOST
valueFrom:
fieldRef:
fieldPath: status.hostIP
Surveillance des nœuds du plan de contrôle (anciennement appelés nœuds maîtres)
Par défaut, l'agent hôte n'est pas planifié sur les nœuds du plan de contrôle d' Kubernetes (anciennement appelés nœuds maîtres), car le déploiement respecte le taint node-role.kubernetes.io/master:NoSchedule par défaut défini sur la plupart des nœuds du plan de contrôle. Pour surveiller les nœuds du plan de contrôle, vérifiez d'abord quel indicateur de contamination est défini sur ces nœuds en exécutant la commande suivante et en recherchant .spec.taints dans la réponse :
kubectl describe node <control-plane-node-name>
Ajoutez ensuite la tolérance à l'agent DaemonSet pour la contamination définie sur le nœud du plan de contrôle. Si le nœud du plan de contrôle présente la marque par défaut, la tolérance appropriée pour le Daemonset de l'agent est la suivante :
tolerations:
- key: "node-role.kubernetes.io/master"
effect: "NoSchedule"
operator: "Exists"
Une fois que vous avez déterminé le seuil de tolérance requis pour la surveillance des nœuds du plan de contrôle, configurez ce seuil lors de l'installation de l'agent.
Si vous avez installé l'agent à l'aide du graphique « Helm », vous pouvez définir les tolérances de deux manières :
En utilisant l'indicateur
--set agent.pod.tolerationsEn créant un
values.yamlfichier contenant le texte suivant, puis en transmettant ce fichier à la commande d'installation de Helm à l'aide de l'option-f values.yaml:
agent:
pod:
# agent.pod.tolerations are tolerations to influence agent pod assignment.
# https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
tolerations:
- key: "node-role.kubernetes.io/master"
effect: "NoSchedule"
operator: "Exists"
Si vous avez installé l'agent à l'aide de l'opérateur, ajoutez les tolérances dans la ressource personnalisée sous .spec.agent.pod.tolerations dans le instana-agent.customresource.yaml fichier. Voir l'exemple suivant :
spec:
agent:
pod:
tolerations:
- key: "node-role.kubernetes.io/master"
effect: "NoSchedule"
operator: "Exists"
Appliquez ensuite la nouvelle ressource personnalisée au cluster en exécutant la commande suivante :
kubectl apply -f instana-agent.customresource.yaml
Pour un contrôle plus direct, installez l'agent hôte séparément sur les nœuds du plan de contrôle.
Surveillance Kubernetes NGINX Ingress
Pour configurer l'Ingress Kubernetes NGINX et l'agent hôte afin de collecter les métriques NGINX, consultez la page Surveillance NGINX.
Pour activer le traçage distribué pour l'Ingress Kubernetes NGINX, consultez la section « Traçage distribué pour l'Ingress NGINX ».
Configuration des secrets de l'agent
Kubernetes dispose d'une prise en charge intégrée pour le stockage et la gestion des informations sensibles. Toutefois, si vous n'utilisez pas cette fonctionnalité intégrée mais que vous avez tout de même besoin de pouvoir masquer les données sensibles dans les ressources d' Kubernetes, vous pouvez configurer les secrets de l'agent.
Pour activer la masquage des données sensibles pour certaines ressources d' Kubernetes s (notamment les annotations et les variables d'environnement des conteneurs), procédez comme suit :
Définissez la variable
INSTANA_KUBERNETES_REDACT_SECRETSd'environnement commetrueindiqué dans l'extrait de code suivant concernant l' YAML d'un agent :spec: containers: env: - name: INSTANA_KUBERNETES_REDACT_SECRETS value: "true"Configurez l'agent hôte avec la liste de secrets souhaitée, comme décrit dans la section consacrée à la configuration des secrets de l'agent.
Rapports vers plusieurs systèmes backend
Pour l'agent hôte installé à l'aide de l'Operator ou du tableau « Helm », vous pouvez ajouter des backends supplémentaires en exécutant la commande suivante :
Pour l'agent hôte installé à l'aide de la carte Helm:
helm install instana-agent \ --repo https://agents.instana.io/helm \ --namespace instana-agent \ --create-namespace \ --set agent.key=my-key \ --set agent.endpointHost='<your_host_agent_endpoint>' \ --set agent.endpointPort=443 \ --set cluster.name='<your_cluster_name>' \ --set zone.name='zone-name' \ --set "agent.additionalBackends[0].endpointHost=<your_host_agent_endpoint>" \ --set "agent.additionalBackends[0].key=<your_agent_key>" \ --set "agent.additionalBackends[0].endpointPort=443" \ --set "agent.additionalBackends[1].endpointHost=<your_other_host_agent_endpoint>" \ --set "agent.additionalBackends[1].key=<your_other_agent_key>" \ --set "agent.additionalBackends[1].endpointPort=443" \ instana-agentPour l'agent hôte installé à l'aide d'Operator :
apiVersion: instana.io/v1 kind: InstanaAgent metadata: name: instana-agent namespace: instana-agent spec: zone: name: edited-zone # (optional) name of the zone of the host cluster: name: my-cluster agent: endpointHost: <your_host_agent_endpoint> endpointPort: "443" env: {} key: <your_agent_key> additionalBackends: - endpointHost: <your_host_agent_endpoint> endpointPort: "443" key: <your_agent_key> configuration_yaml: | # You can leave this empty, or use this to configure your instana agent. # See https://github.com/instana/instana-agent-operator/blob/main/config/samples/instana_v1_extended_instanaagent.yaml for the extended version.
Pour plus d'informations sur la transmission de rapports vers plusieurs backends à partir d'un agent d' Kubernetes, consultez la section « Configuration d'un backend d' Instana ».