¿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.