Gestión del agente « Workload Protection » en un clúster « Kubernetes » mediante un gráfico « Helm »

Puede utilizar un gráfico Helm para instalar, actualizar y eliminar un agente Workload Protection en un clúster Kubernetes.

También puedes utilizar la consola para conectar un clúster existente de Red Hat OpenShift o Kubernetes a tu instancia de Workload Protection. En la consola de IBM Cloud, ve a «Containers» > «Clusters» para acceder al clúster existente. A continuación, haz clic en «Conectar» en el widget « Workload Protection » para conectar tu clúster a Workload Protection.

Antes de empezar

  • Instala la CLI de IBM Cloud, el complemento Kubernetes Service y el complemento IBM Cloud Container Registry. Para obtener más información, consulta la sección « Instalación de la CLI ».

  • Instala la última versión de la CLI de Helm en tu ordenador. Helm Se requiere la versión 3.6 o posterior.

    Helm Es un gestor de paquetes de tipo « Kubernetes » que utiliza los catálogos de Helm para definir, instalar y actualizar aplicaciones complejas de Kubernetes en tu clúster. Los diagramas de Helm empaquetan las especificaciones para generar archivos YAML para los recursos de Kubernetes que crean la app. Estos recursos de Kubernetes se aplican automáticamente en tu clúster y se asignan a una versión mediante Helm. También puede utilizar Helm para especificar y empaquetar su propia app y dejar que Helm genere los archivos YAML para los recursos de Kubernetes.

  • Comprueba que dispones del acceso y los permisos necesarios para implementar el agente de Workload Protection en el clúster.

  • Comprueba que el espacio de nombres ibm-observe esté disponible en tu clúster. El agente está implementado en este espacio de nombres.

    Para crear el espacio de nombres, ejecuta el comando « kubectl create namespace ibm-observe ».

  • Comprueba que el tráfico saliente desde tu clúster hacia los puntos fin Workload Protection esté permitido en los puertos 443 y 6443. Si conectas los agentes a través de un punto de conexión privado virtual (VPE), ambos puertos deben estar permitidos para el tráfico saliente del clúster.

Implementación de un agente

Sigue los siguientes pasos para implementar un agente mediante Helm.

Configure el repositorio Helm de Sysdig

Añada el repositorio de Helm de Workload Protection a la instancia de Helm.

  1. Establezca el contexto del clúster.

    ibmcloud ks cluster config --cluster <CLUSTER_NAME>
    
  2. Añade el repositorio Helm.

    helm repo add sysdig https://charts.sysdig.com
    
  3. Actualiza el repositorio para obtener las últimas versiones de todos los gráficos de Helm.

    helm repo update
    
  4. Enumera los gráficos de « Helm » que están disponibles actualmente en el repositorio de Sysdig.

    helm search repo sysdig
    
  5. Comprueba que aparezca la tabla « sysdig/sysdig-deploy » ( Helm ).

Crea los valores en el archivo « YAML »

Define un archivo « YAML » e incluye los valores necesarios para implementar el agente « Workload Protection » y los componentes de Secure que tengas previsto implementar. Por ejemplo, guarda el archivo con el nombre « agent-values-monitor-secure.yaml ».

El siguiente archivo « YAML » es una plantilla que puedes utilizar para configurar el agente « Workload Protection » y los componentes de Secure. Puedes personalizar el archivo eliminando o comentando con « # » las secciones que no sean necesarias para tu 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

Donde:

CLUSTER_NAME
El nombre del clúster en el que se está implementando el agente.
SERVICE_ACCESS_KEY
La clave de acceso de la instancia de « Workload Protection ».
INGESTION_ENDPOINT
El punto final de ingestión de la instancia. Por ejemplo, ingest.us-east.security-compliance-secure.cloud.ibm.com.
API_ENDPOINT
El punto final de la API de la instancia. Por ejemplo, us-east.security-compliance-secure.cloud.ibm.com.

Instala el gráfico « Helm »

Para implementar el agente, los componentes de Secure o ambos, instala el gráfico « sysdig/sysdig-deploy ». Puedes instalar el gráfico utilizando un archivo de variables YAML como el que has configurado en el paso anterior, o bien puedes configurar las variables directamente.

Ejecuta el siguiente comando para instalar el agente utilizando el gráfico « Helm » y el archivo de variables « YAML »:

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

El siguiente ejemplo muestra un archivo de valores de muestra de « Helm » para la región de 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

Actualización de un agente

Para actualizar la versión del agente utilizando Helm, realice los pasos siguientes:

  1. Actualiza el repositorio « Helm ».

    helm repo update
    
  2. Actualice el agente.

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

Estos pasos permiten actualizar tus agentes a la última versión disponible.

eliminar un agente

También puedes utilizar la consola para eliminar el agente de tu clúster. En la consola de IBM Cloud, ve a «Containers» > «Clusters» para acceder al clúster existente. A continuación, abre el menú « Opciones » del widget « Workload Protection » y selecciona « Desconectar ».

Para eliminar el agente mediante Helm, desinstala el gráfico.

  1. Muestra la lista de las cartas náuticas que están instaladas.

    helm list -n ibm-observe
    

    El resultado muestra la lista de gráficos instalados:

    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. Desinstale el gráfico.

    helm delete sysdig-agent -n ibm-observe
    

    En Helm, « sysdig-agent » es el nombre de la versión.