Administration de l'agent « Instana » sur Red Hat OpenShift

Une fois l'agent installé, configurez-le et gérez-le selon vos besoins. Consultez la liste suivante pour connaître toutes les options de configuration des agents disponibles sur Red Hat OpenShift.

Vérification de l'état du pod

Après avoir installé l'agent, vous pouvez vérifier l'état des pods dans votre déploiement d'agent à l'aide des commandes suivantes :

kubectl get pods -n instana-agent
kubectl get agent instana-agent -n instana-agent -o yaml | yq ".status"
 

Dans un bon déploiement, le " STATUS de tous les pods de l'espace de noms doit être le " Running. La ressource personnalisée " instana-agent doit également afficher " status: Running, comme le montre l'exemple suivant :

$ kubectl get pods -n instana-agent
NAME                                      READY   STATUS    RESTARTS   AGE
controller-manager-6478cb4c6f-8s29b       1/1     Running   0          70m
instana-agent-8ftnj                       1/1     Running   0          70m
instana-agent-9w4vc                       1/1     Running   0          70m
instana-agent-k8sensor-5bbf568976-5pjk2   1/1     Running   0          3h2m
instana-agent-k8sensor-5bbf568976-h96hr   1/1     Running   0          3h2m
instana-agent-k8sensor-5bbf568976-lnbsg   1/1     Running   0          3h2m
instana-agent-zpmrj                       1/1     Running   0          70m

$ kubectl get agent instana-agent -n instana-agent -o yaml | yq ".status"
conditions:
  - lastTransitionTime: "2024-08-06T08:12:03Z"
    message: most recent reconcile of agent CR completed without issue
    observedGeneration: 2

    ...

observedGeneration: 2
oldVersionsUpdated: true
operatorVersion: 0.0.1-dev
status: Running
 

Configuration de l'agent

Vous pouvez configurer l'agent Instana pour Kubernetes et Red Hat OpenShift de deux manières différentes, selon la méthode que vous avez utilisée pour installer l'agent.

Configuration de l'agent installé via l'opérateur

Pour configurer l'agent « Instana » installé à l'aide d'un opérateur, procédez comme suit :

  1. Ouvrez le fichier de ressource personnalisée instana-agent.customresource.yaml« YAML ».

  2. 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'
     
  3. 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 plus d'informations sur la configuration des agents, consultez la section « Configuration des agents hôtes à l'aide du fichier de configuration des agents ».

Configuration de l'agent installé à l'aide du tableau « Helm »

Pour configurer l'agent « Instana » installé à l'aide du tableau « Helm », procédez de l'une des manières suivantes :

  • Spécifiez la configuration sur la ligne de commande en utilisant l'indicateur '--set agent.configuration_yaml=<config>.

  • Ajouter la configuration au fichier de configuration de la carte Helm 'values.yaml. Passez le fichier à la commande Helm install (pendant l'installation) ou Helm upgrade (après l'installation) en utilisant l'option '-f

Pour obtenir la liste détaillée de tous les paramètres de configuration, consultez le tableau « Instana » sur Helm.

Personnalisation de l' Container Registry

En fonction de votre environnement Red Hat OpenShift, vous devrez peut-être personnaliser le Red Hat OpenShift Container Registry.

Ajouter des flux d'images

Si vous ne pouvez pas extraire d'images du IBM Cloud Container Registryicr.io), vous devez ajouter manuellement deux flux d'images. Dans le Red Hat OpenShift Container Registry, accédez à l'espace de noms 'instana-agent et ajoutez les flux d'images suivants :

Name: instana-agent
Image: icr.io/instana/agent:latest
 

Le flux d'images résultant est " docker-registry.default.svc:5000/instana-agent/instana-agent:latest.

Name: k8sensor
Image: icr.io/instana/k8sensor:latest
 

Le flux d'images résultant est " docker-registry.default.svc:5000/instana-agent/k8sensor:latest.

Utilisez les nouveaux flux d'images dans le fichier YAML.

Mise à jour de l'installation de l'agent

Selon la méthode d'installation utilisée, vous pouvez mettre à jour l'agent « Instana » pour « Red Hat OpenShift » 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 :

  1. Mise à jour de l'opérateur
  2. Mise à jour des images

Pour mettre à jour l'opérateur vers la dernière version à l'aide d' OLM, suivez les étapes décrites dans la section « Approuver manuellement une mise à jour en attente de l'opérateur » de la documentation d' Red Hat OpenShift.

Vous pouvez également configurer l'opérateur pour qu'il se mette à jour automatiquement. Pour plus d'informations, consultez la section « Modification du canal de mise à jour d'un opérateur ».

Pour mettre à jour manuellement l'opérateur à l'aide de l'interface utilisateur d' Instana, procédez comme suit :

  1. 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 ».

  2. Sur la page du catalogue de déploiement de l'agent, cliquez sur la tuile OpenShift - Operator.

  3. 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.yaml
     
    Remarque : pour mettre à jour l'opérateur vers une version spécifique, exécutez la commande suivante :
    kubectl apply -f https://github.com/instana/instana-agent-operator/releases/download/<operator_version>/instana-agent-operator.yaml
    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.

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 :

  1. Mise à jour du graphique « Helm »
  2. Mise à jour des images

Pour mettre à jour le graphique d' Helm s des agents, exécutez les commandes suivantes :

helm pull --repo https://agents.instana.io/helm --untar instana-agent
kubectl apply -f instana-agent/crds
oc adm policy add-scc-to-user privileged -z instana-agent -n instana-agent
oc adm policy add-scc-to-user anyuid -z instana-agent-remote -n instana-agent
helm upgrade --namespace instana-agent instana-agent \
--repo https://agents.instana.io/helm instana-agent \
--reuse-values
 
Remarque : pour mettre à jour le graphique « Helm » vers une version spécifique, ajoutez l'indicateur --version <helm-version> à la commande. Pour connaître la liste des versions disponibles du graphique « Helm », consultez les notes de mise à jour relatives au graphique « Helm » de l'agent Instana.
Remarque : les versions 2.0.0 et antérieures de l'agent Instana et des graphiques Helm ne disposent pas du instana-agent/crds dossier. Par conséquent, cette kubectl apply -f instana-agent/crds étape n'est pas nécessaire.

Une fois l'opérateur mis à jour, passez à la mise à jour des images.

Mise à jour des images d'agent d' Instana

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 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 d' OpenShift, comme GitOps, notamment les flux d'images.

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 :

Pour ouvrir le tableau de bord de la gestion des agents, procédez comme suit :

  1. Dans la barre latérale de l'interface utilisateur d' Instana, sélectionnez « Infrastructure ».
  2. Cliquez sur un hôte surveillé spécifique.
  3. 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 é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. Pour plus d'informations sur la surveillance des nœuds du plan de contrôle, consultez la section « Surveillance des nœuds du plan de contrôle ».

Pour un contrôle plus direct, installez l'agent séparément sur les nœuds du plan de contrôle.

Surveillance Kubernetes NGINX Ingress

Pour obtenir des instructions sur la configuration de l'Ingress Kubernetes NGINX et de notre agent permettant de collecter les métriques NGINX, consultez la page de surveillance NGINX. Le traçage d'Ingress sur Kubernetes NGINX est également possible via le projet OpenTracing. Consultez la section « Traçage distribué pour Ingress sur NGINX » pour obtenir des instructions sur la configuration.

Rapports vers plusieurs systèmes backend

Pour ajouter des backends supplémentaires à l'aide d' helm, exécutez la commande suivante. Vous pouvez utiliser des backends supplémentaires pour configurer votre agent Instana ou laisser ce champ vide.

Remarque : lorsque vous exécutez la commande suivante, les données de l'agent sont transmises à plusieurs backends, ainsi que les données d' Kubernetes s et les données de métriques.
  • Utilisation d' 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-agent
     
  • Utilisation de l'opérateur :

    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 permettre la transmission de rapports vers plusieurs backends à partir d'un agent Kubernetes, consultez la configuration de l'agent Docker.

Configuration des secrets

Vous pouvez utiliser les Secrets pour stocker et gérer des données sensibles telles que des informations d'identification, des jetons ou des clés. Pour plus d'informations, consultez la page « Kubernetes secrets ».