Kubernetes no garantiza que nada fuera de un clúster pueda comunicarse con este 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 daemons del sistema o kubelet, pueden comunicarse con todos los Pods de ese nodo.
Por lo tanto, cuando una red aloja dos clústeres, como se muestra a continuación, 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 fuera de los clústeres, marcados como “Otro cliente” y “Otro servidor” en el diagrama, con un Pod dentro de un clúster?
En este documento, se explica cómo un modelo de red de modo plano y un modelo de red de modo isla responden a estas preguntas de manera diferente.
Modelo de red de modo plano
En una red completamente integrada o de modo plano, los Pods tienen direcciones IP únicas en todos los clústeres. Por ejemplo, Pod-A
en el clúster 1 tiene una dirección IP que no verás en ningún otro lugar del clúster 1 o el clúster 2. De manera similar, 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 (suponiendo que no haya firewalls ni otras políticas que bloqueen el tráfico). No se necesita una puerta de enlace ni una traducción de direcciones para la comunicación de Pod a Pod.
Del mismo modo, los clientes y servidores fuera de un clúster pueden comunicarse directamente con un pod dentro de un clúster mediante la dirección IP única del pod si, por ejemplo, el enrutamiento se configura de forma estática en dispositivos de red o los nodos usan el Protocolo de Puerta de Enlace Fronteriza (BGP) para anunciar que puedan controlar el tráfico de un rango 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 necesitas usar redes superpuestas ni NAT.
Modelo de red de modo isla
Un modelo de red de modo isla es una opción si cuentas con un espacio de direcciones IP grande y puedes permitirte asignar una dirección IP única a cada Pod. Sin embargo, si un espacio de direcciones IP grande no es una opción para ti, un modelo de red de modo isla es una buena opción.
En una red de modo isla, los nodos tienen direcciones IP únicas, pero para ser económicos con las direcciones IP escasas, los Pods no tienen direcciones únicas entre clústeres. Esto no genera 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 puertas de enlace que median entre un Pod en un clúster y un Pod en otro clúster.
De manera similar, el tráfico (de entrada) de un cliente que llega a un clúster y el tráfico (de salida) que sale de un clúster se controlan mediante puertas de enlace similares. Las puertas de enlace se pueden implementar de varias maneras. Por ejemplo, NAT, direcciones IP virtuales (VIP) y proxies son algunos ejemplos de puertas de enlace. Realizan traducciones de direcciones IP que tienen el efecto de mantener privadas las IP de Pod.
En el modelo de red de modo isla, se pueden usar las mismas direcciones IP de Pod en cada clúster. Es decir, las direcciones IP de los Pods no tienen que ser únicas en todos los clústeres. Como se sugiere en el siguiente diagrama, puedes usar las mismas direcciones IP de Pod en cada clúster porque un Pod en un clúster nunca se comunica directamente con un Pod en otro clúster.
Una de las ventajas principales del modelo de red de modo isla es que las direcciones IP de Pod se pueden volver a usar de esta manera.
Ventajas y desventajas de los dos modelos
A continuación, se enumeran algunas de las ventajas y desventajas de los dos modelos:
Una red plana es más rápida que una red tipo isla porque las puertas de enlace en modo isla realizan traducciones de direcciones, y estas traducciones generan un costo de rendimiento.
Depurar los problemas del clúster es más fácil en las redes planas, ya que todo en la red tiene una dirección IP única, por lo que es más fácil identificar dónde ocurre un problema. Por ejemplo, las direcciones IP de un Pod no se enmascaran detrás de la dirección IP de un nodo, por lo que es más fácil determinar con exactitud qué Pod está causando problemas. De manera similar, las IP de cliente no se ocultan en el modo plano como ocurren en el modo isla y eso también ayuda con la depuración.
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 fragmentos grandes de direcciones IP). En ese caso, una red de modo isla es mejor opción.
Es importante tener en cuenta que los modelos de red planas y de isla son solo dos de los modelos de red posibles, y hay muchas variaciones, incluso dentro de estos modelos.