Gestion de l'agent Monitoring dans Red Hat OpenShift à l'aide d'une charte HELM

Vous pouvez utiliser une carte Helm pour installer, mettre à niveau et supprimer un agent Monitoring sur un cluster Kubernetes.

Avant de commencer

  • Installez la dernière version de l'Helm CLI, version 3, sur votre ordinateur local.

    Helm est un gestionnaire de paquets de type « Kubernetes » qui utilise les charts d' Helm pour définir, installer et mettre à jour des applications d' Kubernetes complexes au sein de votre cluster. Les chartes Helm regroupent les spécifications permettant de générer des fichiers YAML pour les ressources Kubernetes qui créent votre application. Ces ressources Kubernetes sont automatiquement appliquées dans votre cluster et se voient affecter une version par Helm. Vous pouvez également utiliser Helm pour spécifier et conditionner votre propre application et laisser Helm générer les fichiers YAML pour vos ressources Kubernetes.

  • Vérifiez que vous disposez des droits d'accès et des droits nécessaires pour déployer l'agent Monitoring sur le cluster.

  • Vérifiez que l'espace de nom ibm-observe est disponible dans votre cluster. L'agent est déployé dans cet espace de noms.

Déployer un agent

Pour déployer un agent à l'aide de Helm, procédez comme suit:

Etape 1. Configurer le dépôt Sysdig Helm

Ajoutez le référentiel Monitoring Helm à votre instance Helm.

Procédez comme suit :

  1. Définissez le contexte du cluster.

    obmcloud ks cluster config --cluster <CLUSTER_NAME>
    
  2. Ajoutez le dépôt Helm.

    helm repo add sysdig https://charts.sysdig.com
    
  3. Mettez à jour les référentiels pour extraire les dernières versions de toutes les chartes Helm.

    helm repo update
    
  4. Énumérez les graphiques « Helm » actuellement disponibles pour le dépôt Sysdig.

    helm search repo sysdig
    
  5. Vérifiez que la Helm sysdig/sysdig-deploy est répertoriée.

Si l'erreur suivante est générée :

helm repo add sysdig https://charts.sysdig.com    --debug
Error: context deadline exceeded
helm.go:84: [debug] context deadline exceeded

Exécutez la commande suivante et réessayez.

rm $HOME/Library/Preferences/helm/repositories.lock

Étape 2. Créer le fichier YAML contenant les valeurs

Définissez un fichier yaml et incluez les valeurs pour déployer l'agent Monitoring et les composants Workload Protection que vous prévoyez de déployer. Par exemple, nommez le fichier agent-values-monitor-secure.yaml.

Le fichier yaml suivant est un modèle que vous pouvez utiliser pour configurer l'agent Monitoring et les composants Workload Protection. Vous pouvez personnaliser le fichier en supprimant ou en mettant en commentaire avec # les sections qui ne sont pas requises pour votre déploiement d'agent.

global:
  clusterConfig:
    name: CLUSTER_NAME
  sysdig:
    accessKey: MONITORING_INSTANCE_ACCESS_KEY
    secureAPIToken: SECURE_TOKEN
  kspm:
    deploy: true
agent:
  image:
    tag: AGENT_TAG
    registry: icr.io
  slim:
    enabled: true
    image:
      repository: ext/sysdig/agent-slim
    kmoduleImage:
      repository: ext/sysdig/agent-kmodule
  collectorSettings:
    collectorHost: INGESTION_ENDPOINT    # for example, ingest.eu-gb.monitoring.cloud.ibm.com
nodeAnalyzer:
  nodeAnalyzer:
    deploy: true
    apiEndpoint: API_ENDPOINT   # for example, eu-gb.monitoring.cloud.ibm.com
    benchmarkRunner:
      deploy: false
kspmCollector:
  apiEndpoint: API_ENDPOINT    # for example, eu-gb.monitoring.cloud.ibm.com
admissionController:
  enabled: true
  sysdig:
    url: WEB_UI_ENDPOINT    # for example, https://ingest.eu-gb.monitoring.cloud.ibm.com
  clusterName: CLUSTER_NAME

  • CLUSTER_NAME est le nom du cluster dans lequel vous déployez l'agent.
  • MONITORING_INSTANCE_ACCESS_KEY est la clé d'accès à l'instance Monitoring.
  • SECURE_TOKEN est le jeton d'API sécurisé.
  • AGENT_TAG Il s'agit de la version de l'agent que vous prévoyez de déployer.
  • INGESTION_ENDPOINT est le noeud final d'ingestion de l'instance.
  • API_ENDPOINT est le noeud final d'API de l'intance.
  • WEB_UI_ENDPOINT est le noeud final de l'interface utilisateur Web de l'instance.

Exemple de fichier yaml de valeurs pour déployer l'agent

Par exemple, consultez l'exemple suivant d'un fichier de valeurs qui déploie l'agent Monitoring uniquement:

global:
  clusterConfig:
    name: mycluster-au-syd
  sysdig:
    accessKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    secureAPIToken: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  kspm:
    deploy: true
agent:
  image:
    registry: icr.io
  slim:
    enabled: true
    image:
      repository: ext/sysdig/agent-slim
    kmoduleImage:
      repository: ext/sysdig/agent-kmodule
  collectorSettings:
    collectorHost: ingest.au-syd.monitoring.cloud.ibm.com

Exemple de fichier yaml de valeurs pour déployer l'agent et l'analyseur de Node

Par exemple, consultez l'exemple suivant d'un fichier de valeurs qui déploie l'agent Monitoring et le composant Node Analyzer:

global:
  clusterConfig:
    name: mycluster-au-syd
  sysdig:
    accessKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    secureAPIToken: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  kspm:
    deploy: true
agent:
  image:
    registry: icr.io
  slim:
    enabled: true
    image:
      repository: ext/sysdig/agent-slim
    kmoduleImage:
      repository: ext/sysdig/agent-kmodule
  collectorSettings:
    collectorHost: ingest.au-syd.monitoring.cloud.ibm.com
nodeAnalyzer:
  nodeAnalyzer:
    deploy: true
    apiEndpoint: API_ENDPOINT   # for example, eu-gb.monitoring.cloud.ibm.com
    benchmarkRunner:
      deploy: false

Étape 3. Installez la charte Helm

Pour déployer l'agent, les composants Workload Protection ou les deux, vous devez installer la charte sysdig/sysdig-deploy et utiliser le fichier yaml de variables que vous avez configuré à l'étape précédente.

Exécutez la commande suivante pour installer l'agent à l'aide de la charte Helm :

helm install -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml

Si vous rencontrez l'erreur suivante: Error: INSTALLATION FAILED: Kubernetes cluster unreachable: xxxxxx failed to refresh token: oauth2: cannot fetch token: 400 Bad Request, définissez le contexte de votre cluster et réessayez.

Mise à jour d'un agent

Pour mettre à jour la version de l'agent à l'aide de Helm, procédez comme suit:

  1. Mettez à jour le graphique.

    helm repo update
    
  2. Recherchez les valeurs du fichier yaml que vous avez utilisé pour déployer l'agent et modifiez le fichier agent.image.tag avec la version de l'agent que vous souhaitez déployer.

  3. Mettez à niveau l'agent.

    helm upgrade -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml
    

Supprimer un agent

Pour supprimer l'agent à l'aide de Helm, vous devez désinstaller la charte.

Procédez comme suit :

  1. Affichez la liste des cartes installées.

    helm list -n ibm-observe
    

    La sortie de la commande affiche les graphiques comme suit :

    NAME        	NAMESPACE  	REVISION	UPDATED                             	STATUS  	CHART              	APP VERSION
    sysdig-agent	ibm-observe	1       	2023-03-24 15:02:58.408108 +0100 CET	deployed	sysdig-deploy-1.6.3
    
  2. Désinstallez la charte.

    helm delete sysdig-agent  -n ibm-observe
    

    En ce qui concerne Helm, sysdig-agent est le nom de la libération.

    Si vous oubliez d'inclure l'espace de noms dans la commande, vous obtenez l'erreur suivante : Error: uninstall: Release not loaded: sysdig-agent: release: not found.