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

Puedes utilizar un gráfico de Helm para instalar, actualizar y eliminar un agente de Workload Protection en tus clústeres de Satellite.

Antes de empezar

  • Instala la CLI de IBM Cloud, el complemento de Kubernetes Service, el complemento de IBM Cloud Container Registry y las CLI de Red Hat OpenShift y Kubernetes. 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 local. 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.

  • Obtenga el punto final Workload Protection ingest. Acceda a la ubicación de Satellite y, a continuación, seleccione Enlazar puntos finales y Puntos finales del sistema. Copia el punto final « system », que comienza por satellite-sysdig- y que apunta a ingest.private.<region>.monitoring.cloud.ibm.com. Puedes utilizar este punto final más adelante como INGESTION_SATELLITE_ENDPOINT.

  • El tráfico saliente de su clúster a los puntos finales de Workload Protection debe dirigirse a los puertos 443 y 6443.

  • 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 « oc adm new-project --node-selector='' ibm-observe ».

  • Obtenga el punto final Workload Protection ingest. Acceda a la ubicación de Satellite y, a continuación, seleccione Enlazar puntos finales y Puntos finales del sistema. Copia el punto final « system », que comienza por satellite-sysdig- y apunta a ingest.private.<region>.monitoring.cloud.ibm.com. Puedes utilizar este punto final más adelante como INGESTION_SATELLITE_ENDPOINT.

  • Comprueba que el tráfico saliente desde tu clúster hacia los puntos de fin Workload Protection es esté permitido en los puertos 443 y 6443.

Implementación de un agente

Sigue los siguientes pasos para implementar un agente mediante Helm.

Configurar el contexto del clúster

  1. Inicie una sesión en la cuenta. Si tiene una cuenta federada, incluya la opción --sso.

    ibmcloud login [-g <resource_group>] [--sso]
    
  2. Descargue y añada el archivo de configuración kubeconfig correspondiente a su clúster a kubeconfig en ~/.kube/config o al último archivo de la variable de entorno KUBECONFIG.

    ibmcloud oc cluster config --cluster <cluster_name_or_ID>
    
  3. En tu navegador, ve a la dirección del controlador de tu clúster URL y añade /console al final. Por ejemplo, https://c0.containers.cloud.ibm.com:23652/console.

  4. En la barra de menús de la consola web de Red Hat OpenShift, haz clic en tu perfil IAM#user.name@email.com > Copiar comando de inicio de sesión. Muestra y copia el comando « oc login » en la línea comando para autenticarte desde la CLI.

  5. Compruebe que los mandatos oc se ejecutan correctamente con el clúster comprobando la versión.

    oc version
    

    Salida de ejemplo:

    Client Version: v4.11.0
    Kubernetes Version: v1.25.8.2
    

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 ).

Cree el archivo de valores Helm

Define un archivo « YAML » e incluye los valores necesarios para implementar los componentes de « Workload Protection » que tengas previsto implementar. Por ejemplo, llama al archivo « agent-values-monitor-secure.yaml ».

El siguiente archivo « YAML » es una plantilla que puedes utilizar para configurar los componentes de « Workload Protection ». Puedes personalizar el archivo eliminando o comentando con « # » las secciones que no sean necesarias para la implementación de tu agente.

agent:
  ebpf:
    enabled: true
    kind: universal_ebpf
  collectorSettings:
    collectorHost: INGESTION_SATELLITE_ENDPOINT
    collectorPort: INGESTION_SATELLITE_ENDPOINT_PORT
  slim:
    enabled: true
global:
  clusterConfig:
    name: CLUSTER_NAME
  kspm:
    deploy: true
  sysdig:
    accessKey: SERVICE_ACCESS_KEY
    apiHost: API_ENDPOINT
nodeAnalyzer:
  secure:
    vulnerabilityManagement:
      newEngineOnly: true
  nodeAnalyzer:
    runtimeScanner:
      deploy: false
    benchmarkRunner:
      deploy: false
    hostScanner:
      deploy: false
    deploy: true
  natsUrl: wss://API_ENDPOINT
  sslVerifyCertificate: false
kspmCollector:
  natsUrl: wss://API_ENDPOINT
  sslVerifyCertificate: false
clusterScanner:
  enabled: true
  eveEnabled: true
  sslVerifyCertificate: false

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_SATELLITE_ENDPOINT
El punto final « Satellite », extraído anteriormente, que apunta al punto final de ingesta. Por ejemplo, c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud.
INGESTION_SATELLITE_ENDPOINT_PORT
El puerto del punto final Satellite, extraído anteriormente, que apunta al punto final ingest. Por ejemplo, 30771.
API_ENDPOINT
El punto final Satellite, extraído anteriormente, que apunta al punto final de la API privada Workload Protection. Por ejemplo, c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud:31924. En este caso, tanto el nombre de host como el puerto se definen juntos.

Instala el gráfico « Helm »

Para implementar el agente, los componentes de Workload Protection o ambos, instala el gráfico « sysdig/sysdig-deploy » y utiliza el archivo de variables « YAML » que has configurado en el paso anterior.

Ejecute el mandato siguiente para instalar el agente utilizando el diagrama de Helm:

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

Si quieres instalar directamente los componentes de Workload Protection sin un archivo de valores de Helm, puedes ejecutar el siguiente comando. Utiliza --set para configurar todas las variables.

helm install sysdig-agent sysdig/sysdig-deploy --namespace ibm-observe --create-namespace \
    --set agent.ebpf.enabled=true \
    --set agent.ebpf.kind=universal_ebpf \
    --set global.sysdig.accessKey=<SERVICE_ACCESS_KEY> \
    --set global.sysdig.apiHost=<API_ENDPOINT> \
    --set agent.collectorSettings.collectorHost=<INGESTION_SATELLITE_ENDPOINT> \
    --set agent.collectorSettings.collectorPort=<INGESTION_SATELLITE_ENDPOINT_PORT> \
    --set nodeAnalyzer.natsUrl=wss://<API_ENDPOINT> \
    --set nodeAnalyzer.nodeAnalyzer.runtimeScanner.deploy=false \
    --set nodeAnalyzer.nodeAnalyzer.hostScanner.deploy=false \
    --set nodeAnalyzer.nodeAnalyzer.benchmarkRunner.deploy=false \
    --set nodeAnalyzer.nodeAnalyzer.sslVerifyCertificate=false \
    --set nodeAnalyzer.secure.vulnerabilityManagement.newEngineOnly=true \
    --set global.kspm.deploy=true \
    --set global.clusterConfig.name=<CLUSTER_NAME> \
    --set kspmCollector.natsUrl=wss://<API_ENDPOINT> \
    --set kspmCollector.sslVerifyCertificate=false \
    --set clusterScanner.enabled=true \
    --set clusterScanner.eveEnabled=true \
    --set clusterScanner.sslVerifyCertificate=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_SATELLITE_ENDPOINT
El punto final Satellite, extraído anteriormente, que apunta al punto final ingest. Por ejemplo, c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud.
INGESTION_SATELLITE_ENDPOINT_PORT
El puerto del punto final Satellite, extraído anteriormente, que apunta al punto final ingest. Por ejemplo, 30771.
API_ENDPOINT
El punto final Satellite, extraído anteriormente, que apunta al punto final de la API privada Workload Protection. Por ejemplo, c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud:31924. En este caso, tanto el nombre de host como el puerto se definen juntos.

Actualización de un agente

Actualiza el agente de « Workload Protection » al menos una vez cada dos meses.

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
    

eliminar un agente

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

  1. Muestra la lista de gráficos que están instalados.

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

    helm delete sysdig-agent -n ibm-observe
    

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