Saltar al contenido

Docker cambia el controlador cgroup a systemd

Estuvimos buscado en diferentes espacios para brindarte la solución para tu dilema, si tienes alguna pregunta deja tu duda y respondemos sin falta, porque estamos para servirte.

Solución:

Como tengo dos archivos de configuración, también necesito agregar la entrada en el segundo archivo de configuración: /etc/systemd/system/docker.service.d/docker-thinpool.conf:

--exec-opt native.cgroupdriver=systemd 

Una solución que no implique la edición de unidades systemd o drop-ins sería crear (o editar) el /etc/docker/daemon.json archivo de configuración e incluir lo siguiente:


  "exec-opts": ["native.cgroupdriver=systemd"]

Después de guardarlo, reinicie su servicio docker.

sudo systemctl restart docker

Obviamente, esta solución solo es factible si desea aplicarla en todo el sistema.

Solo para agregar, cgroupfs es el administrador del grupo de control propio de los acopladores. Sin embargo, para la mayoría de las distribuciones de Linux, systemd es el sistema de inicio predeterminado ahora y systemd tiene una estrecha integración con los grupos de control de Linux y en el sitio de Kubernetes, recomiendan usar systemd (ver más abajo) ya que usar cgroupfs junto con systemd parece no ser óptimo.

Por lo tanto, es mejor usar systemd que para la administración de cgroup. kubelet está configurado de forma predeterminada para usar systemd. Por lo tanto, es más fácil y mejor cambiar Docker para usar el controlador systemd Cgroup

Una historia de esta superposición está aquí https://lwn.net/Articles/676831/

En el sitio de Kubernetes, recomiendan usar systemd https://kubernetes.io/docs/setup/production-environment/container-runtimes/

Controladores de Cgroup Cuando se elige systemd como el sistema de inicio para una distribución de Linux, el proceso de inicio genera y consume un grupo de control raíz (cgroup) y actúa como un administrador de cgroup. Systemd tiene una estrecha integración con cgroups y asignará cgroups por proceso. Es posible configurar el tiempo de ejecución de su contenedor y el kubelet para usar cgroupfs. El uso de cgroupfs junto con systemd significa que habrá dos administradores de cgroup diferentes.

Los grupos de control se utilizan para restringir los recursos que se asignan a los procesos. Un único administrador de cgroup simplificará la vista de los recursos que se están asignando y, de forma predeterminada, tendrá una vista más uniforme de los recursos disponibles y en uso. Cuando tenemos dos administradores, terminamos con dos vistas de esos recursos. Hemos visto casos en el campo donde los nodos que están configurados para usar cgroupfs para kubelet y Docker, y systemd para el resto de los procesos que se ejecutan en el nodo se vuelven inestables bajo la presión de los recursos.

Reseñas y puntuaciones

Puedes respaldar nuestra misión añadiendo un comentario o dejando una valoración te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *