← Về danh sách bài học
Bài 12/25
🚪 Bài 12: Ingress Controller
🎯 Sau bài học này, bạn sẽ:
- Hiểu Ingress là gì và khác Service thế nào
- Cài đặt NGINX Ingress Controller
- Tạo Ingress rules (path-based, host-based)
1. Ingress vs LoadBalancer Service
| LoadBalancer | Ingress |
|---|---|
| 1 service = 1 IP | 1 IP cho nhiều services |
| L4 (TCP/UDP) | L7 (HTTP/HTTPS) |
| Đắt (cloud) | Tiết kiệm |
2. Cài NGINX Ingress Controller
# Minikube
minikube addons enable ingress
# Helm (Production)
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm install ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx --create-namespace
# Verify
kubectl get pods -n ingress-nginx
3. Path-based Routing
# ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
rules:
- host: myapp.example.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: api-service
port:
number: 80
- path: /
pathType: Prefix
backend:
service:
name: web-service
port:
number: 80
4. Host-based Routing
spec:
rules:
- host: app1.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app1-service
port:
number: 80
- host: app2.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app2-service
port:
number: 80
📝 Tóm Tắt
- Ingress: L7 load balancer, 1 IP cho nhiều services
- Ingress Controller: NGINX, Traefik, HAProxy
- Path-based: Route theo URL path
- Host-based: Route theo domain