Swarm Docker evita que el nodo participe en la red de ingreso -- docker campo con dns campo con load-balancing campo con docker-swarm campo con docker-ingress camp Relacionados El problema

Docker swarm prevent node from participating in ingress network


2
vote

problema

Español

posiblemente una pregunta muy trivial, pero no puedo encontrar nada en la documentación sobre una característica como esta. Como sabemos de la Documentación de malla de enrutamiento :

Todos los nodos participan en una malla de enrutamiento de ingreso . La malla de enrutamiento permite que cada nodo en el enjambre acepte conexiones en los puertos publicados para cualquier servicio que se ejecute en el enjambre, incluso si no hay tarea en ejecución en el nodo. La malla de enrutamiento rompe todas las solicitudes entrantes a los puertos publicados en los nodos disponibles a un contenedor activo.

Sin embargo, no deseo que algunos nodos participen en la malla de enrutamiento, pero todavía quiero que participen en la hospedación del servicio.


La configuración que estoy tratando de lograr un aspecto un poco como este:

nodo-topology

Tengo un solo servicio, hello-world , con tres instancias, una en cada nodo.

Me gustaría, en este ejemplo, solo node-1 y node-2 Para participar en la red de externalización de ingress6 . Sin embargo, cuando visito 10.0.0.3 , aún expone el puerto 80 y 443 , ya que aún tiene que tener el parse0 Red en él para poder ejecutar el contenedor parse111111 , y me gustaría que no sea el caso.

En esencia, me gustaría poder ejecutar contenedores para un servicio que aloja el puerto parse2 & AMP; parse3 EN parse4 Sin ser para acceder a ella visitando parse5 en un navegador web. ¿Hay alguna forma de configurar esto? Incluso si no hay contenedor que se ejecuta en el nodo, todavía se reenvía el tráfico a un contenedor que se ejecuta.

¡Gracias!

Original en ingles

Quite possibly a very trivial question but I can't find anything in the documentation about a feature like this. As we know from the routing mesh documentation:

All nodes participate in an ingress routing mesh. The routing mesh enables each node in the swarm to accept connections on published ports for any service running in the swarm, even if therexe2x80x99s no task running on the node. The routing mesh routes all incoming requests to published ports on available nodes to an active container.

However, I do not wish some nodes to participate in the routing mesh, but I still want them to participate in hosting the service.


The configuration I'm trying to achieve looks a bit like this:

node-topology

I have a single service, hello-world, with three instances, one on each node.

I would like, in this example, only node-1 and node-2 to participate in externalising the ingress network. However, when I visit 10.0.0.3, it still exposes port 80 and 443 as it still has to have the ingress network on it to be able to run the container hello-world, and I would like this not to be the case.

In essence, I'd like to be able to run containers for a service that hosts port 80 & 443 on 10.0.0.3 without being to access it by visiting 10.0.0.3 in a web browser. Is there any way to configure this? Even if there's no container running on the node, it'll still forward traffic to a container that is running.

Thank you!

              

Lista de respuestas

2
 
vote
vote
La mejor respuesta
 

La respuesta corta a su pregunta específica es no, no hay una forma compatible de habilitar / deshabilitar selectivamente la red de ingreso en nodos específicos para redes de superposición específicas.

Pero en función de lo que está pidiendo hacer, el modelo esperado para usar solo nodos específicos para el tráfico entrante es controlar qué nodos reciben el tráfico, no los puertos de cierre en nodos específicos ...

En un enjambre típico de 6 nodos donde se ha separado a que sus gerentes estén protegidos en una subred diferente de la DMZ (por ejemplo, una subred detrás de los trabajadores). Usaría las restricciones de colocación para garantizar que sus cargas de trabajo de la aplicación solo se asignaron a los nodos de los trabajadores, y esos nodos fueron los únicos en el grupo VLAN / SECURITY / etc. por ser accesible desde el tráfico de usuario / cliente.

La mayoría de los diseños de productos de Swarm recomiendan proteger a sus gerentes (que administran la orquestación y programación de contenedores, almacene secretos, etc.) del tráfico externo.

¿Por qué no poner sus proxies en los trabajadores en una red de cliente-accesible y tener esos nodos el único en DMZ / LB externo?

Tenga en cuenta que si solo permite el acceso de firewall / lb a algunos nodos (por ejemplo, 3 trabajadores), los otros nodos que no reciben tráfico entrante externo no están utilizando efectivamente sus redes de ingreso, lo que logra el resultado deseado. El nodo que recibe la conexión externa utiliza su VIP para enrutar el tráfico directamente al nodo que ejecuta el puerto de contenedores publicado.

 

The short answer to your specific question is no, there is no supported way to selectively enable/disable the ingress network on specific nodes for specific overlay networks.

But based on what you're asking to do, the expected model for using only specific nodes for incoming traffic is to control which nodes receive the traffic, not shutoff ports on specific nodes...

In a typical 6-node swarm where you've separated out your managers to be protected in a different subnet from the DMZ (e.g. a subnet behind the workers). You'd use placement constraints to ensure your app workloads were only assigned to worker nodes, and those nodes were the only ones in the VLAN/Security Group/etc. for being accessible from user/client traffic.

Most prod designs of Swarm recommend protecting your managers (which manage the orchestration and scheduling of containers, store secrets, etc.) from external traffic.

Why not put your proxies on the workers in a client-accessible network, and have those nodes the only in DMZ/external LB.

Note that if you only allow firewall/LB access to some nodes (e.g. just 3 workers) then the other nodes that don't receive external incoming traffic are effectively not using their ingress networks, which achieves your desired result. The node that receives the external connection uses its VIP to route the traffic directly to the node that runs the published container port.

 
 
   
   

Relacionados problema

1  ¿Cómo prohibir los intentos de usar la comunicación entre contenedores a través de la red de Ingress en Swarm Docker?  ( How to forbid attempts to use inter container communication via ingress network ) 
Tengo una serie de servicios de enjambres de Docker, implementados a través de data Fool = Fulse | Frue deriving (Eq, Show) 3 . La mayoría de ellos (...

0  ¿Alternativa de Kubernetes Ingress ServicePort?  ( Kubernetes ingress serviceport alternative ) 
Ejemplo de entrada de https://kubernetes.io/docs/concepts/services/concepts/services -Networking / Ingress / muestra que para especificar Ingress Batoscked,...

2  Cómo poner en comunicación Dos grupos en Kubernetes  ( How to put in communication two clusters in kubernetes ) 
Tengo una situación como esta: un grupo de máquinas web Un grupo de máquinas DB y otros servicios La pregunta es cómo se coloca en la comunicación los...

2  Swarm Docker evita que el nodo participe en la red de ingreso  ( Docker swarm prevent node from participating in ingress network ) 
posiblemente una pregunta muy trivial, pero no puedo encontrar nada en la documentación sobre una característica como esta. Como sabemos de la Documentación ...

3  Cómo deshabilitar la intercepción de errores por Ingress en una configuración de Kubernetes tectónica  ( How to disable interception of errors by ingress in a tectonic kubernetes setup ) 
Tengo un par de billetes de NodoJs que se ejecutan como cápsulas en una configuración de Kubernet, con NGINX administrado por Ingress. Estos backends son se...

5  ¿Cuál es una diferencia entre el controlador de ingreso e ingresado?  ( What is a difference between ingress and ingress controller ) 
Estoy usando K8s en GCP. Se requiere que establezca INGRESS para configurar la conexión TLS, por lo que configure Ingress para mi aplicación, ¡funciona! Por ...

13  Configuración de ingreso para el panel de control  ( Ingress configuration for dashboard ) 
Hice NGINX Ingress Controller Tutorial desde GitHub y Dashboard expuesto Kubernetes kubernetes-dashboard NodePort 10.233.53.77 <none> 443:...

5  Whitelist Una IP para acceder a la implementación con Kubernetes Ingress Istio  ( Whitelist an ip to access deployment with kubernetes ingress istio ) 
Estoy tratando de poner en blanco una IP para acceder a un despliegue dentro de mi clúster de Kubernetes. Busqué alguna documentación en línea sobre esto, p...

1  Los caminos no funcionan en el controlador de Ingreso de Kubernetes Nginx  ( Paths are not working in kubernetes nginx ingress controller ) 
Tengo una aplicación de arranque de primavera responsable de obtener a los ciudadanos y un controlador de Ingreso de Nginx configurado con SSL-Passthrough par...

0  Ingress no funciona  ( Ingress does not work ) 
Intenté flojar la muestra. https://github.com/kubernetes/ingress- Nginx / Tree / D27829CE7EBC5F202816C52F69985BC102DB9A63 / DOCS / EJEMPLOS / ESTADIC-IP E...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos