Lección 9: Exponer aplicaciones — LoadBalancer, Ingress y DNS
En la lección anterior conocimos un Service de tipo ClusterIP — una dirección estable y un nombre DNS que conectan con los Pods, pero solo desde dentro del clúster. Ahora la pregunta es cómo llega un visitante desde afuera (internet) hasta la aplicación. Conoceremos tres niveles de exposición. Clust
ClusterIP es un teléfono interno de oficina; LoadBalancer es un número externo que cualquiera puede marcar; e Ingress es el lobby del edificio que envía a cada visitante a la oficina correcta según el nombre en la puerta.
- Ingress
- Un objeto que enruta tráfico HTTP/HTTPS externo hacia Services internos según el nombre de host y la ruta. Ofrece un único punto de entrada para muchas aplicaciones. Necesita un Ingress Controller corriendo en el clúster para hacer cumplir las reglas.
- LoadBalancer
- Un tipo de Service que le pide al proveedor de nube una IP externa real y balancea el tráfico a nivel de red (L4) hacia los Pods de ese Service. Así la aplicación queda accesible desde fuera del clúster.
- DNS del clúster
- Un servicio DNS interno que traduce nombres de Services a direcciones IP dentro del clúster. Un nombre completo se ve así: <service>.<namespace>.svc.cluster.local, por ejemplo web.default.svc.cluster.local.
- ClusterIP
- El tipo de Service por defecto: una IP virtual estable accesible solo desde dentro del clúster. Ideal para la comunicación entre componentes internos, pero no accesible desde afuera.
- NodePort
- Un tipo de Service que abre un puerto fijo en cada node del clúster, de modo que el Service es accesible a través de la dirección de un node y ese puerto. Una forma simple pero tosca de exponer hacia afuera.