Sobes.tech
Middle+

¿Cómo se realiza la redirección del tráfico hacia el ingreso desde dentro del clúster?

sobes.tech AI

Respuesta de la IA

Para redirigir el tráfico desde dentro del clúster hacia Ingress, se utiliza el nombre DNS del servicio del Ingress Controller. En la configuración estándar, el Ingress Controller se despliega como un Servicio de tipo LoadBalancer o NodePort.

  1. Descubrimiento de servicios: La aplicación dentro del clúster usa el nombre DNS del Servicio, que expone (hace visible) el Ingress Controller. Por ejemplo, nginx-ingress-controller.ingress-nginx.svc.cluster.local, si se usa nginx-ingress con el nombre de Servicio correspondiente.

  2. IP del Servicio/ClusterIP: El servidor DNS del clúster Kubernetes (por ejemplo, CoreDNS) resuelve este nombre DNS en el ClusterIP del Servicio del Ingress Controller.

  3. kube-proxy: kube-proxy en el nodo donde se ejecuta la aplicación intercepta el tráfico dirigido al Servicio ClusterIP del Ingress Controller.

  4. iptables/ipvs: kube-proxy usa reglas de iptables o ipvs para enrutar el tráfico a uno de los pods del Ingress Controller.

  5. Procesamiento en el Ingress Controller: Los pods del Ingress Controller reciben el tráfico y, según las reglas de los recursos Ingress, lo redirigen al servicio correspondiente dentro del clúster.

Ejemplo de solicitud desde un pod:

# Solicitud al servicio a través de Ingress, usando DNS interno
curl http://my-app.example.com

Aquí, my-app.example.com se resuelve por el servidor DNS del clúster en el ClusterIP del Servicio del Ingress Controller, si las entradas correspondientes están configuradas o si el Ingress Controller está configurado para manejar esas solicitudes directamente (menos común en tráfico interno). La mayoría de las veces, el tráfico interno accede al servicio por su nombre DNS. Si se necesita pasar explícitamente a través de Ingress desde dentro del clúster, se debe asegurar que el Ingress Controller esté accesible mediante ClusterIP o IP local de los pods y que la entrada DNS o el mecanismo de enrutamiento dirija hacia él.

El patrón más común para la comunicación entre servicios dentro del clúster es acceder directamente al servicio por su nombre DNS (<nombre-del-servicio>.<namespace>.svc.cluster.local), evitando Ingress. La redirección del tráfico hacia Ingress desde dentro del clúster suele ser necesaria para pruebas o escenarios específicos de enrutamiento.