🌐 One IP, Multiple Services, SSL Termination
NodePort exposes high ports. LoadBalancer costs money. Ingress exposes HTTP/HTTPS routes, SSL termination, name-based virtual hosting.
📝 Basic Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: myapp-ingress
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: myapp-service
port:
number: 80
- path: /api
pathType: Prefix
backend:
service:
name: api-service
port:
number: 8080
🎯 TLS/SSL with Ingress
# Create secret for TLS certificate
kubectl create secret tls myapp-tls --cert=tls.crt --key=tls.key
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: myapp-ingress
spec:
tls:
- hosts:
- myapp.example.com
secretName: myapp-tls
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: myapp-service
port:
number: 80
💡 Ingress Controllers
- NGINX Ingress Controller (most common)
- Traefik (built-in Let’s Encrypt)
- HAProxy Ingress
- AWS ALB Ingress Controller (AWS users)
- Istio Gateway (service mesh)
“NodePort exposed random high ports. LoadBalancer cost $20/month. Ingress + NGINX: one IP, SSL, path routing. Perfect for microservices.”
