Uso de recursos del contenedor Init

Información general

A partir del Agent v7.60+, Datadog utiliza el cálculo dinámico de recursos para los contenedores init que inyectan bibliotecas de rastreo. En lugar de utilizar valores fijos, los contenedores init solicitan temporalmente toda la CPU y memoria disponibles para el pod, sin afectar a cómo se programa el pod. (Antes de v7.60, los contenedores init utilizaban valores por defecto conservadores: 50m para CPU y 20Mi para memoria).

Este comportamiento mejora la fiabilidad del inicio del rastreador al tiempo que respeta las reglas de programación de Kubernetes. Dado que los contenedores de inicio se ejecutan secuencialmente y salen antes de que se inicien los contenedores de aplicación, no compiten por los recursos de tiempo de ejecución.

Programación del pod

Kubernetes programa pods utilizando una fórmula que tiene en cuenta los contenedores init:


Solicitud efectiva de CPU/Memoria =
  max(suma de solicitudes de todos los contenedores regulares,
      solicitud máxima de cualquier contenedor init)

Dado que los contenedores init se ejecutan antes que los contenedores de aplicación (y no se solapan con ellos), pueden utilizar temporalmente más recursos sin aumentar la solicitud efectiva de pod. Esto funciona siempre que ningún contenedor init solicite más recursos de los que el pod pueda tolerar.

Anular el comportamiento por defecto

Si es necesario, puedes anular el uso predeterminado de recursos del contenedor init estableciendo las siguientes variables de entorno en la configuración del Cluster Agent:

  • DD_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_INIT_RESOURCES_CPU
  • DD_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_INIT_RESOURCES_MEMORY