Empezando con el Datadog Operator
El Datadog Operator es un operador de Kubernetes de código abierto que te permite desplegar y configurar el Datadog Agent en un entorno de Kubernetes. Esta guía te explica cómo debe utilizarse el Operator para desplegar el Datadog Agent.
Requisitos previos
- Kubernetes v1.20.X o posterior
- Helm para desplegar el Datadog Operator
- La herramienta de línea de comandos de Kubernetes, kubectl]4, para instalar el Datadog Agent
Instalación y despliegue
Instala el Datadog Operator con Helm:
helm repo add datadog https://helm.datadoghq.com
helm install my-datadog-operator datadog/datadog-operator
Crea un secreto de Kubernetes con tu clave de API:
kubectl create secret generic datadog-secret --from-literal api-key=<DATADOG_API_KEY>
Sustituye <DATADOG_API_KEY>
por tu clave de API Datadog.
Nota: Añade una clave de aplicación para el autoescalado mediante el servidor de métricas externo, añadiendo --from-literal app-key=<DATADOG_APP_KEY>
.
Crea un archivo datadog-agent.yaml
con las especificaciones de la configuración de despliegue del DatadogAgent
. La configuración del siguiente ejemplo activa las métricas, los logs y la herramienta APM:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
site: datadoghq.com
credentials:
apiSecret:
secretName: datadog-secret
keyName: api-key
features:
apm:
enabled: true
logCollection:
enabled: true
Nota: Asegúrate de configurar el site
con el sitio Datadog que estés utilizando (por ejemplo, datadoghq.eu
).
Para conocer todas las opciones de configuración, consulta la especificación de configuración del Operator.
Despliega el Datadog Agent:
kubectl apply -f /path/to/your/datadog-agent.yaml
Ejecutar Agents en un único contenedor
Disponible en Operator v1.4.0 o posterior
De manera predeterminada, Datadog Operator crea un Agent DaemonSet con pods que ejecutan diferentes contenedores del Agent. Datadog Operator v1.4.0 introduce una configuración que permite a los usuarios ejecutar Agents en un único contenedor. Para evitar la elevación de privilegios de todos los Agents en ese contenedor, esto solo se puede hacer cuando system-probe
o security-agent
no son obligatorios. Para obtener más información, consulta Ejecutar como usuario sin privilegios en la página Seguridad de datos del Agent.
Para habilitar esta característica, añade global.containerStrategy: single
al manifiesto DatadogAgent
:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
containerStrategy: single
credentials:
apiSecret:
secretName: datadog-secret
keyName: api-key
features:
apm:
enabled: true
logCollection:
enabled: true
Con la configuración anterior, los pods del Agent se ejecutan como contenedores individuales con tres procesos del Agent. El valor por defecto de
global.containerStrategy
es
optimized
y ejecuta cada proceso del Agent en un contenedor diferente.
Nota: No se recomienda ejecutar varios procesos del Agent en un contenedor único en entornos orquestados como Kubernetes. Los pods que ejecutan varios procesos necesitan que un administrador de procesos gestione sus ciclos de vida, lo cual Kubernetes no puede controlar de manera directa y podría generar incoherencias o conflictos en la administración del ciclo de vida del contenedor.
Validación
Utiliza kubectl get daemonset
y kubectl get pod -owide
para validar tu instalación.
En un clúster con dos nodos worker, deberías ver los pods de Agent que se han creado en cada nodo:
$ kubectl get daemonset
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
datadog-agent 2 2 2 2 2 <none> 5m30s
$ kubectl get pod -owide
NAME READY STATUS RESTARTS AGE IP NODE
agent-datadog-operator-d897fc9b-7wbsf 1/1 Running 0 1h 10.244.2.11 kind-worker
datadog-agent-k26tp 1/1 Running 0 5m59s 10.244.2.13 kind-worker
datadog-agent-zcxx7 1/1 Running 0 5m59s 10.244.1.7 kind-worker2
Limpieza
Los siguientes comandos sirven para eliminar todos los recursos de Kubernetes que hemos creado en esta guía:
kubectl delete datadogagent datadog
helm delete my-datadog-operator
Referencias adicionales
Más enlaces, artículos y documentación útiles: