Kubernetes no garantiza que nada fuera de un clúster pueda comunicarse con él y solo promete proporcionar las siguientes funciones:
Todos los pods de un clúster pueden comunicarse directamente entre sí sin tener que recurrir a la traducción de direcciones de red (NAT). Incluso los pods que están en nodos diferentes pueden comunicarse directamente entre sí.
Los agentes de un nodo, como los daemons del sistema o un kubelet, pueden comunicarse con todos los pods de ese nodo.
Por lo tanto, cuando una red aloja dos clústeres, como se muestra en la imagen de abajo, una pregunta que se debe hacer es cómo se comunican los pods del clúster 1 con los pods del clúster 2. Del mismo modo, ¿cómo se comunican los clientes o servidores que están fuera de los clústeres, marcados como "Otro cliente" y "Otro servidor" en el diagrama, con un pod que está dentro de un clúster?
En este documento se explica cómo responden a estas preguntas los modelos de red flat-mode y island-mode.
Modelo de red en modo plano
En una red totalmente integrada o en modo plano, los pods tienen direcciones IP únicas en todos los clústeres. Por ejemplo, Pod-A
del clúster 1 tiene una dirección IP que no verás en ningún otro lugar del clúster 1 ni del clúster 2. Del mismo modo, Pod-G
en el clúster 2 tiene una dirección única en ambos clústeres. Esto significa que los pods del clúster 1 pueden comunicarse directamente con cualquiera de los pods del clúster 2 (siempre que no haya cortafuegos u otras políticas que bloqueen el tráfico). No se necesita ninguna pasarela ni traducción de direcciones para la comunicación entre pods.
Del mismo modo, los clientes y servidores que no formen parte de un clúster pueden comunicarse directamente con un pod de un clúster a través de la dirección IP única del pod si, por ejemplo, el enrutamiento se configura de forma estática en los dispositivos de red o si los nodos usan el protocolo de puerta de enlace de frontera (BGP) para anunciar que pueden gestionar el tráfico de un intervalo de IP determinado.
Por lo tanto, en las redes planas, la comunicación es fácil y directa: no hay direcciones IP superpuestas y no es necesario usar redes superpuestas ni NAT.
Modelo de red del modo aislado
Un modelo de red en modo plano es una opción si tienes un espacio de direcciones IP grande y puedes asignar una dirección IP única a cada pod. Sin embargo, si no puedes usar un espacio de direcciones IP grande, el modelo de red en modo aislado es una buena opción.
En una red en modo isla, los nodos tienen direcciones IP únicas, pero, para ahorrar direcciones IP, los pods no tienen direcciones únicas en todos los clústeres. Esto no causa problemas porque los pods de un clúster nunca se comunican directamente con los pods de otro clúster. En su lugar, como se muestra en el siguiente diagrama, hay pasarelas que median entre un pod de un clúster y un pod de otro clúster.
Del mismo modo, el tráfico de entrada de un cliente que accede a un clúster y el tráfico de salida de un clúster se gestionan mediante gateways similares. Las pasarelas se pueden implementar de varias formas. Por ejemplo, NAT, las direcciones IP virtuales (VIPs) y los proxies son algunos ejemplos de puertas de enlace. Realizan traducciones de direcciones IP que tienen el efecto de mantener privadas las IPs de los pods.
En el modelo de red en modo aislado, se pueden usar las mismas direcciones IP de pod en cada clúster. Es decir, las direcciones IP de los pods no tienen por qué ser únicas en todos los clústeres. Como se indica en el siguiente diagrama, puedes usar las mismas direcciones IP de pods en cada clúster, ya que un pod de un clúster nunca se comunica directamente con un pod de otro clúster.
Una de las principales ventajas del modelo de red en modo isla es que las direcciones IP de los pods se pueden reutilizar de esta forma.
Ventajas y desventajas de los dos modelos
A continuación, se indican algunas de las ventajas y desventajas de los dos modelos:
Una red plana es más rápida que una red aislada porque las pasarelas en modo aislado realizan traducciones de direcciones, y estas traducciones tienen un coste de rendimiento.
En las redes planas, es más fácil depurar los problemas de clústeres porque todos los elementos de la red tienen una dirección IP única, por lo que es más fácil identificar dónde se produce un problema. Por ejemplo, las IPs de los pods no están enmascaradas detrás de la dirección IP de un nodo, por lo que es más fácil determinar exactamente qué pod está causando problemas. Del mismo modo, las IPs de los clientes no se ocultan en el modo plano como en el modo de isla, lo que también ayuda a depurar.
Es posible que no puedas usar el modelo de red plana si tienes pocas direcciones IP o si tu espacio de IP está fragmentado (es decir, si no tienes grandes bloques de direcciones IP). En ese caso, una red aislada es una mejor opción.
Es importante tener en cuenta que los modelos de red plana y de isla son solo dos de los modelos de red posibles, y que hay muchas variaciones incluso dentro de estos modelos.