Ingress y enrutamiento externo
Exponga varios servicios al exterior mediante un único punto de entrada usando recursos Ingress, enrutamiento por host y ruta, y un controlador Ingress.
Ingress y enrutamiento externo es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.
Más allá de NodePort y LoadBalancer
Un Service puede exponer una aplicación, pero asignar a cada aplicación su propia IP externa resulta caro y complicado. Ingress proporciona un único punto de entrada HTTP inteligente que dirige el tráfico a muchos servicios.
¿Qué es Ingress?
Un Ingress es un objeto de Kubernetes que describe reglas de enrutamiento HTTP/HTTPS: qué host o ruta de URL se asigna a qué Service.
Necesita un controlador
El objeto Ingress solo contiene reglas. Un controlador de Ingress (nginx, Traefik, HAProxy) supervisa esas reglas y realiza el enrutamiento. Sin controlador, no hay efecto.
kubectl get pods -n ingress-nginxUn Ingress básico
Este Ingress dirige todo el tráfico a un único Service de backend en el puerto 80.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-ingress
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web
port:
number: 80Enrutamiento basado en host
Añada un host para enrutar por nombre de dominio: api.example.com a un servicio, shop.example.com a otro, todo en la misma IP.
rules:
- host: api.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: api
port:
number: 8080Enrutamiento basado en rutas
También puede enrutar por ruta de URL dentro de un mismo host: /api al servicio de API y / al frontend web.
paths:
- path: /api
pathType: Prefix
backend:
service:
name: api
port:
number: 8080
- path: /
pathType: Prefix
backend:
service:
name: web
port:
number: 80Terminación de TLS
Ingress puede terminar HTTPS mediante un secreto TLS, de modo que sus servicios reciban HTTP sin cifrar mientras los usuarios cuentan con cifrado.
spec:
tls:
- hosts:
- shop.example.com
secretName: shop-tlsLas Annotations ajustan el comportamiento
Las annotations específicas del controlador configuran reescrituras, tiempos de espera, límites de tasa y mucho más. Se almacenan en los metadatos del Ingress.
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /IngressClass
Cuando hay varios controladores, ingressClassName indica a Kubernetes cuál debe gestionar este Ingress.
spec:
ingressClassName: nginxInspeccionar Ingress
Compruebe sus reglas y la dirección asignada con kubectl get ingress y use describe para consultar los eventos.
kubectl describe ingress web-ingressLa alternativa moderna: Gateway API
Kubernetes está evolucionando hacia la Gateway API, un sucesor más expresivo de Ingress. Ingress sigue siendo ampliamente utilizado y es el punto de partida adecuado.
Comprobación rápida
¿Por qué se necesita un controlador de Ingress?
Resumen
Ahora puede exponer aplicaciones de forma ordenada:
- Ingress define las reglas de enrutamiento HTTP; un controlador de Ingress las aplica
- Enrute por host o ruta a través de un único punto de entrada
- Termine TLS y ajuste el comportamiento con annotations
ingressClassNameselecciona el controlador
Una IP, muchos servicios y enrutamiento inteligente.
Preguntas frecuentes
¿La lección «Ingress y enrutamiento externo» es gratis?
Sí — el texto completo de «Ingress y enrutamiento externo» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Qué aprenderé en «Ingress y enrutamiento externo»?
Exponga varios servicios al exterior mediante un único punto de entrada usando recursos Ingress, enrutamiento por host y ruta, y un controlador Ingress. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar DevOps Bootcamp?
No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Ingress y enrutamiento externo»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?
Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Deployments para aplicaciones sin estado
- Services para el acceso de red
- ConfigMaps y Secrets
- Ingress y enrutamiento externo