Services et Networking 20 min de lecture

Ingress : routage HTTP avance

Qu'est-ce qu'un Ingress ?

Un Ingress gere l'acces HTTP/HTTPS externe au cluster avec :

  • Routage base sur le nom de domaine
  • Routage base sur le chemin (path)
  • Terminaison SSL/TLS
  • Load balancing

Installer un Ingress Controller

# NGINX Ingress Controller
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml

Ingress YAML

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
spec:
  rules:
  - host: app.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: nginx-service
            port:
              number: 80

Ingress avec plusieurs services

spec:
  rules:
  - host: app.example.com
    http:
      paths:
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: api-service
            port:
              number: 8080
      - path: /
        pathType: Prefix
        backend:
          service:
            name: frontend-service
            port:
              number: 80

TLS/SSL

spec:
  tls:
  - hosts:
    - app.example.com
    secretName: tls-secret
  rules:
  - host: app.example.com
    ...
Production : Utilisez cert-manager pour gerer automatiquement les certificats SSL avec Let's Encrypt.