Gestione dell'agent Monitoring in Red Hat OpenShift utilizzando un grafico HELM

È possibile utilizzare un grafico Helm per installare, aggiornare ed eliminare un agente Monitoring su un cluster Kubernetes.

Prima di iniziare

  • Installa l'ultima versione della CLI di Helm (versione 3) sul tuo computer locale.

    Helm è un gestore di pacchetti di tipo " Kubernetes " che utilizza i chart di Helm per definire, installare e aggiornare applicazioni complesse di tipo " Kubernetes " nel proprio cluster. I grafici Helm comprimono le specifiche per generare file YAML per le risorse Kubernetes che creano la tua applicazione. Queste risorse Kubernetes vengono applicate automaticamente nel tuo cluster e viene assegnata loro una versione da Helm. Puoi anche utilizzare Helm per specificare e comprimere la tua applicazione e permettere a Helm di generare i file YAML per le tue risorse Kubernetes.

  • Verifica di disporre dell'accesso e delle autorizzazioni per distribuire l'agent Monitoring nel cluster.

  • Verifica che lo spazio dei nomi ibm-observe sia disponibile nel tuo cluster. L'agente è distribuito in questo spazio dei nomi.

Distribuisci un agente

Completa la seguente procedura per distribuire un agent utilizzando Helm:

Passo 1. Configurare il repository Sysdig Helm

Aggiungi il repository Helm Monitoring alla tua istanza Helm.

Completa i seguenti passi:

  1. Imposta il contesto del cluster.

    obmcloud ks cluster config --cluster <CLUSTER_NAME>
    
  2. Aggiungi il repository Helm.

    helm repo add sysdig https://charts.sysdig.com
    
  3. Aggiorna i repository per richiamare le versioni più recenti di tutti i grafici Helm.

    helm repo update
    
  4. Elenca i grafici " Helm " attualmente disponibili nel repository Sysdig.

    helm search repo sysdig
    
  5. Verifica che il Helm Helm sysdig/sysdig-deploy sia elencato.

Se viene visualizzato il seguente errore:

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

Eseguire il seguente comando e riprovare.

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

Passo 2. Crea il file YAML dei valori

Definisci un file yaml e includi i valori per distribuire i componenti Monitoring e Workload Protection che intendi distribuire. Ad esempio, denominare il file agent-values-monitor-secure.yaml.

Il seguente yaml è un template che puoi utilizzare per configurare i componenti Monitoring e i componenti Workload Protection. È possibile personalizzare il file rimuovendo o commentando con # le sezioni che non sono richieste per la propria distribuzione dell'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

Dove

  • CLUSTER_NAME è il nome del cluster in cui si sta distribuendo l'agent.
  • MONITORING_INSTANCE_ACCESS_KEY è la chiave di accesso dell'istanza di Monitoring.
  • SECURE_TOKEN è il token API sicuro.
  • AGENT_TAG è la versione dell'agent che si prevede di distribuire.
  • INGESTION_ENDPOINT è l'endpoint di inserimento dell'istanza.
  • API_ENDPOINT è l'endpoint API dell'intance.
  • WEB_UI_ENDPOINT è l'endpoint dell'IU web.

Esempio di file yaml di valori per distribuire l'agente

Ad esempio, consulta il seguente esempio di un file di valori che distribuisce solo l'agent Monitoring:

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

Esempio di file yaml dei valori per distribuire agent e Node Analyzer

Ad esempio, vedi il seguente esempio di un file di valori che distribuisce l'agent Monitoring e il componente 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

Passo 3. Installa il grafico Helm

Per distribuire l'agent, i componenti Workload Protection o entrambi, devi installare il grafico sysdig/sysdig-deploy e utilizzare il file yaml delle variabili che hai configurato nel passo precedente.

Eseguire il seguente comando per installare l'agent utilizzando il diagramma Helm:

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

Se si verifica il seguente errore: Error: INSTALLATION FAILED: Kubernetes cluster unreachable: xxxxxx failed to refresh token: oauth2: cannot fetch token: 400 Bad Request, impostare il contesto del cluster e riprovare.

Aggiorna un agente

Per aggiornare la versione dell'agent utilizzando Helm, completa la seguente procedura:

  1. Aggiornare il grafico.

    helm repo update
    
  2. Trova i valori del file yaml che hai utilizzato per distribuire l'agent e modificare il file agent.image.tag con la versione dell'agent che vuoi distribuire.

  3. Aggiornare l'agent.

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

Rimuovi un agente

Per eliminare l'agent utilizzando Helm, è necessario disinstallare il grafico.

Completa i seguenti passi:

  1. Elencare i grafici installati.

    helm list -n ibm-observe
    

    L'output del comando elenca i seguenti grafici:

    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. Disinstallare il grafico.

    helm delete sysdig-agent  -n ibm-observe
    

    In termini di Helm, sysdig-agent è il nome della release.

    Se si dimentica di includere lo spazio dei nomi nel comando, si ottiene il seguente errore: Error: uninstall: Release not loaded: sysdig-agent: release: not found.