← Về danh sách bài học Bài 12/25

🚪 Bài 12: Ingress Controller

⏱️ Thời gian: 25 phút | 📚 Độ khó: Trung bình

🎯 Sau bài học này, bạn sẽ:

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