Gestione dell'agente Workload Protection in un cluster Kubernetes tramite un grafico Helm

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

È inoltre possibile utilizzare la console per collegare un cluster esistente di Red Hat OpenShift o Kubernetes alla propria istanza di Workload Protection. Nella console di IBM Cloud, vai su Containers > Clusters per accedere al cluster esistente. Quindi, fai clic su "Connetti " nel widget " Workload Protection " per collegare il tuo cluster a Workload Protection.

Prima di iniziare

  • Installare la CLI di IBM Cloud, il plug-in Kubernetes Service e il plug-in IBM Cloud Container Registry. Per ulteriori informazioni, consulta la sezione " Installazione della CLI ".

  • Installa l'ultima versione della CLI di Helm sul tuo computer locale. Helm È richiesta la versione 3.6 o successiva.

    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 di Kubernetes vengono applicate automaticamente al tuo cluster e assegnate a una versione tramite 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 necessari per distribuire l'agente Workload Protection sul cluster.

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

    Per creare lo spazio dei nomi, eseguire il comando kubectl create namespace ibm-observe``.

  • Verifica che il traffico in uscita dal tuo cluster verso gli endpoint di Workload Protection sia consentito sulle porte 443 e 6443. Se si collegano gli agenti tramite un Virtual Private Endpoint (VPE), entrambe le porte devono essere autorizzate per il traffico in uscita dal cluster.

Installazione di un agente

Seguire i passaggi riportati di seguito per distribuire un agente utilizzando Helm.

Configurare il repository Sysdig Helm

Aggiungi il repository Helm Workload Protection alla tua istanza Helm.

  1. Imposta il contesto del cluster.

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

    helm repo add sysdig https://charts.sysdig.com
    
  3. Aggiorna il repository per scaricare le ultime versioni di tutti i grafici Helm.

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

    helm search repo sysdig
    
  5. Verificare che sia presente il grafico " sysdig/sysdig-deploy " ( Helm ).

Creare i valori nel file YAML

Definire un file YAML e includere i valori necessari per l'installazione dell'agente Workload Protection e dei componenti Secure che si intende implementare. Ad esempio, assegna al file il nome “ agent-values-monitor-secure.yaml ”.

Il seguente file YAML è un modello che è possibile utilizzare per configurare l'agente Workload Protection e i componenti Secure. È possibile personalizzare il file rimuovendo o commentando con # le sezioni non necessarie per il proprio agente.

agent:
  ebpf:
    enabled: true
    kind: universal_ebpf
  collectorSettings:
    collectorHost: INGESTION_ENDPOINT
  sysdig:
    settings:
      host_scanner:
        enabled: true
      kspm_analyzer:
        enabled: true
      sysdig_api_endpoint: API_ENDPOINT
  extraVolumes:
    volumes:
    - name: root-vol
      hostPath:
        path: /
    - name: tmp-vol
      hostPath:
        path: /tmp
    mounts:
    - mountPath: /host
      name: root-vol
      readOnly: true
    - mountPath: /host/tmp
      name: tmp-vol
global:
  imageRegistry: icr.io/ext
  clusterConfig:
    name: CLUSTER_NAME
  sysdig:
    accessKey: SERVICE_ACCESS_KEY
    apiHost: API_ENDPOINT
nodeAnalyzer:
  enabled: false
clusterShield:
  enabled: true
  cluster_shield:
    sysdig_endpoint:
      region: custom
      collector: ingest.private.us-east.security-compliance-secure.cloud.ibm.com:6443
    log_level: info
    features:
      admission_control:
        enabled: true
        container_vulnerability_management:
          enabled: true
        dry_run: false
      container_vulnerability_management:
        enabled: true
      audit:
        enabled: true
      posture:
        enabled: true

Dove:

CLUSTER_NAME
Il nome del cluster in cui si sta effettuando la distribuzione dell'agente.
SERVICE_ACCESS_KEY
La chiave di accesso all'istanza di Workload Protection.
INGESTION_ENDPOINT
L'endpoint di acquisizione dell'istanza. Ad esempio, ingest.us-east.security-compliance-secure.cloud.ibm.com.
API_ENDPOINT
L'endpoint API dell'istanza. Ad esempio, us-east.security-compliance-secure.cloud.ibm.com.

Installa il grafico " Helm "

Per distribuire l'agente, i componenti Secure o entrambi, installa il grafico " sysdig/sysdig-deploy ". È possibile installare il grafico utilizzando un file di YAML e delle variabili come quello configurato nel passaggio precedente, oppure è possibile configurare direttamente le variabili.

Eseguire il seguente comando per installare l'agente utilizzando il grafico " Helm " e il file delle variabili " YAML ":

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

L'esempio seguente mostra un file di valori di esempio per l' Helm relativo alla regione us-east:

agent:
  ebpf:
    enabled: true
    kind: universal_ebpf
  collectorSettings:
    collectorHost: ingest.private.us-east.security-compliance-secure.cloud.ibm.com
  sysdig:
    settings:
      host_scanner:
        enabled: true
      kspm_analyzer:
        enabled: true
      sysdig_api_endpoint: private.us-east.security-compliance-secure.cloud.ibm.com
  extraVolumes:
    volumes:
    - name: root-vol
      hostPath:
        path: /
    - name: tmp-vol
      hostPath:
        path: /tmp
    mounts:
    - mountPath: /host
      name: root-vol
      readOnly: true
    - mountPath: /host/tmp
      name: tmp-vol
global:
  imageRegistry: icr.io/ext
  clusterConfig:
    name: my-cluster
  sysdig:
    accessKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx
    apiHost: private.us-east.security-compliance-secure.cloud.ibm.com
nodeAnalyzer:
  enabled: false
clusterShield:
  enabled: true
  cluster_shield:
    sysdig_endpoint:
      region: custom
      api_url: https://private.us-east.security-compliance-secure.cloud.ibm.com
    log_level: info
    features:
      admission_control:
        enabled: true
        container_vulnerability_management:
          enabled: true
        dry_run: false
      container_vulnerability_management:
        enabled: true
      audit:
        enabled: true
      posture:
        enabled: true

Aggiornamento di un agente

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

  1. Aggiorna il repository Helm.

    helm repo update
    
  2. Aggiornare l'agent.

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

Questi passaggi consentono di aggiornare i tuoi agenti all'ultima versione disponibile.

Rimozione di un agente

È inoltre possibile utilizzare la console per rimuovere l'agente dal proprio cluster. Nella console di IBM Cloud, vai su Containers > Clusters per accedere al cluster esistente. A questo punto, apri il menu Opzioni nel widget " Workload Protection " e seleziona "Disconnetti".

Per eliminare l'agente utilizzando Helm, disinstallare il grafico.

  1. Elencare i grafici installati.

    helm list -n ibm-observe
    

    L'output elenca i grafici installati:

    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 Helm, " sysdig-agent " è il nome della versione.