Estoy ejecutando NGINX y Tomcat en contenedores Docker (el sistema operativo del contenedor es Red Hat Linux) y los implemento a través de pods de Kubernetes. El sistema operativo anfitrión es Red Hat Linux.
Mi consulta es qué parámetro del sistema operativo será efectivo: ¿el sistema operativo del host o el sistema operativo del contenedor? Durante el ajuste del rendimiento, ¿necesito ajustar tanto el sistema operativo como los parámetros del sistema operativo del host? Ejemplo de algunos parámetros a los que me refiero son ulimit - n (archivos abiertos), net.ipv4.tcp.*, fs.file-max, etc.
Como ya se mencionó Crazykev, puede establecer ulimits utilizando las respectivas banderas docker run .
Parámetros como net.ipv4.tcp.* son parámetros del núcleo . Los contenedores Docker se ejecutan en el mismo kernel de Linux que el sistema host; por esta razón, los parámetros establecidos en el host también serán efectivos en el contenedor.
Por lo general, no podrá establecer estos parámetros desde dentro de un contenedor. Puede (sin decir que deba) iniciar un contenedor con el indicador --privileged , que podría (no probado) darle acceso para configurar los parámetros del kernel desde dentro del contenedor. Los documentos de Kubernetes también describen cómo iniciar contenedores privilegiados .
En el contenedor Docker, y no estoy seguro de si podría llamarse OS...
Por cierto, es posible que algunos de sus ejemplos de referencia no admitan la configuración directamente en el contenedor de la ventana acoplable por seguridad u otros problemas. Es posible que necesite encontrar más manuales en Docker docs (por ejemplo, ulimit, docker run --ulimit nofile=262144:262144 )