Las redes son una parte central de Kubernetes, pero puede resultar difícil entender con exactitud cómo se espera que funcionen. Hay 4 problemas de red
Las redes son una parte central de Kubernetes, pero puede resultar difícil entender con exactitud como se espera que funcionen. Hay 4 problemas de red
localhost.Kubernetes trata de compartir máquinas entre aplicaciones. Por lo general, compartir una máquina exige que dos aplicaciones no intenten usar los mismos puertos. Coordinar los puertos entre varios desarrolladores es muy difícil a escala y expone a los usuarios a problemas del clúster que quedan fuera de su control.
La asignación dinámica de puertos complica mucho el sistema: cada aplicación tiene que tomar los puertos como flags, los servidores de API tienen que saber cómo insertar números de puerto dinámicos en los bloques de configuración, los Services tienen que saber cómo encontrarse, y así sucesivamente. En lugar de resolver todo eso, Kubernetes toma otro camino.
Para conocer el modelo de red de Kubernetes, consulta esta página.
Los clústeres de Kubernetes tienen que asignar direcciones IP que no se solapen a los Pods, los Services y los nodos, a partir de un rango de direcciones disponibles configurado en estos componentes:
Según las familias de IP configuradas, un clúster de Kubernetes puede clasificarse como:
Los clústeres de Kubernetes solo tienen en cuenta las familias de direcciones IP presentes en los objetos Pods, Services y Nodes,
independientemente de las direcciones IP que tengan asignadas los objetos representados. Por ejemplo, un servidor o un pod puede tener varias
direcciones IP asignadas a sus interfaces, pero solo se tienen en cuenta las direcciones IP de node.status.addresses o pod.status.ips
al implementar el modelo de red de Kubernetes y definir el tipo de clúster.
EL modelo de red es implementado por el motor de ejecución de contenedores en cada nodo. Los motores de ejecución más habituales usan plugins de la Container Network Interface (CNI) para gestionar las capacidades de red y seguridad. Hay muchos plugins CNI, de distintos proveedores. Algunos de ellos solo añaden capacidades basicas de agregar o quitar interfaces de red, mientras que otros ofrecen soluciones más elaboradas, como la integración con otros sistemas de orquestacion de contenedores, utilizando varios plugins CNI, funciones avanzadas de IPAM, etc.
En esta página hay una lista, no exhaustiva, de complementos de red compatibles con Kubernetes.
El diseño inicial del modelo de red y sus motivos se describen con más detalle en el documento de diseño de redes. Para planes futuros y algunas iniciativas en curso destinadas a mejorar las redes de Kubernetes, consulta los KEPs de SIG-Network.