Sobes.tech
Junior

¿Qué son las rutas en Kubernetes y para qué se utilizan?

sobes.tech AI

Respuesta de la IA

Las rutas, o Ingress Routes, en Kubernetes, son una forma de proporcionar acceso externo a los servicios dentro del clúster. Permiten gestionar el tráfico entrante, dirigiéndolo a los servicios correspondientes según las reglas definidas por el usuario.

Objetivos principales del uso de rutas:

  • Proporcionar acceso externo: Hacen que las aplicaciones sean accesibles desde fuera del clúster.
  • Balanceo de carga: Distribuyen el tráfico entrante entre varias instancias de servicios.
  • Terminación SSL/TLS: Procesan conexiones HTTPS en el nivel de Ingress, descargando a los servicios.
  • Alojamiento virtual: Permiten dirigir el tráfico a diferentes servicios según el nombre del host en la solicitud.
  • Enrutamiento basado en la ruta: Dirigen el tráfico a diferentes servicios según la ruta URL en la solicitud.

La estructura típica de una regla de enrutamiento (en el manifiesto de Ingress) puede ser así:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              number: 80
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: api-service
            port:
              number: 8080

En este ejemplo, el tráfico a example.com sin especificar ruta se dirige al servicio my-service (puerto 80), y el tráfico a example.com/api se dirige al servicio api-service (puerto 8080).

Para que Ingress funcione, se necesita un Controlador de Ingress, que actúa como un proxy inverso y ejecuta las reglas definidas en los recursos de Ingress. Los controladores de Ingress populares incluyen Nginx Ingress Controller, Ambassador, Traefik.