es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede implementar el agente de Portainer en Docker Swarm: /proc/sys/net/bridge/bridge-nf-call-iptables: permiso denegado.

He estado teniendo un problema al implementar el agente de Portainer en un nuevo Docker swarm creado. Uno de los nodos inicia el agente sin ningún problema [lo llamaremos HOST#1], pero luego HOST#2 simplemente intentará indefinidamente desplegar el contenedor del agente (mostrando “preparando contenedor” en el menú de servicios de Portainer), antes de mostrar finalmente un error con el siguiente mensaje y luego intentar crear un nuevo contenedor.

Error:

no se pudo iniciar el contenedor: error al crear la red de conectividad externa: no se puede restringir la comunicación entre contenedores: open /proc/sys/net/bridge/bridge-nf-call-iptables: permiso denegado

Lo que he probado/intentado:

He seguido las instrucciones descritas en la wiki de Portainer y he utilizado el archivo agent-stack.yml para añadir un agente existente a un swarm (https://docs.portainer.io/v/ce-2.11/start/install/agent/swarm/linux). También intenté eliminar por completo el agente del swarm y desplegarlo nuevamente, con los mismos resultados.
1. No hay problemas al implementar el servicio “hello world” en el swarm.
2. Desactivar temporalmente ufw.
3. Configurar “ufw allow in on docker0”.
4. Configurar “ufw allow in on docker_gwbridge”.
5. “docker node ls” muestra que ambos nodos están listos y disponibles.

Detalles del entorno:
– Ambos sistemas ejecutan Ubuntu Server 20.04.
– Ambos sistemas ejecutan Docker versión 20.10.12.
– Ambos sistemas ejecutan versiones del kernel 5.4.0*
– Ambos están funcionando como nodos administradores en el swarm.
– Portainer Agent 2.11.0.
– El sistema que no puede implementar el Agente es un VPS de OpenVZ [HOST#2].
– El VPS [HOST#2] está conectado a mi red local a través de un adaptador OpenVPN (nivel 2), por lo tanto, el swarm está conectado a través de VPN.
– HOST2 utiliza ufw para la gestión del firewall, mientras que HOST1 no lo utiliza.

Soy bastante nuevo en Docker swarm, pero he estado utilizando Docker durante muchos años. Cualquier ayuda es muy apreciada.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Según el mensaje de error, parece que el problema está relacionado con la conectividad de red entre los contenedores. Aquí tienes algunas posibles soluciones que podrías probar:

    1. Verificar la configuración del kernel en ambos hosts: Parece que podría haber un problema al acceder a la configuración del kernel en el HOST#2. Asegúrate de que ambos sistemas tengan la misma configuración del kernel y que permitan la comunicación entre contenedores.
    2. Verificar la configuración del firewall: Como mencionaste, el HOST#2 está utilizando ufw para la gestión del firewall. Es posible que la configuración del firewall esté bloqueando la comunicación entre los contenedores. Intenta deshabilitar ufw y prueba si el agente se puede desplegar correctamente. Si funciona, es posible que necesites ajustar la configuración del firewall para permitir la comunicación entre los contenedores.

    3. Utilizar un controlador de red diferente: Por defecto, Docker utiliza el controlador de red bridge para la comunicación entre contenedores. Es posible que este controlador esté causando problemas en el HOST#2. Intenta utilizar un controlador de red diferente (como overlay) y verifica si eso resuelve el problema.

    4. Utilizar un entorno de contenedorización diferente: Dado que el HOST#2 es un VPS de OpenVZ, es posible que el entorno de contenedorización esté causando problemas. Prueba a utilizar un entorno de contenedorización diferente, como runc, y verifica si eso resuelve el problema.

    5. Verificar si hay otras diferencias de configuración entre los dos hosts: Es posible que haya otras diferencias de configuración entre los dos hosts que estén causando el problema. Asegúrate de que ambos hosts estén configurados de manera idéntica, especialmente en lo que respecta a Docker Swarm y al agente de Portainer.

    Espero que estas sugerencias te sean útiles para resolver el problema. ¡Buena suerte!

Comments are closed.