Ingress avec Traefik
Comment fonctionne le routage du trafic dans votre infrastructure
Siovos utilise Traefik comme contrôleur d'ingress pour router le trafic externe vers vos services dans Kubernetes.
Qu'est-ce qu'un contrôleur d'Ingress ?#
Un contrôleur d'ingress agit comme point d'entrée pour le trafic HTTP/HTTPS dans votre cluster. Il :
- Route les requêtes vers le bon service selon le hostname
- Termine le SSL/TLS (gère les certificats HTTPS)
- Peut appliquer des middlewares (rate limiting, authentification, etc.)
Comment fonctionne le routage#
Quand vous créez une ressource Ingress dans Kubernetes, Traefik la détecte automatiquement et configure la route :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app
namespace: my-namespace
annotations:
cert-manager.io/cluster-issuer: step-ca-issuer
spec:
ingressClassName: traefik
tls:
- hosts:
- my-app.internal
secretName: my-app-tls
rules:
- host: my-app.internal
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app
port:
number: 80Points clés :
ingressClassName: traefikindique à Kubernetes d'utiliser Traefik- L'annotation
cert-manager.io/cluster-issuerdemande un certificat automatique - Le bloc
tlsactive HTTPS avec le certificat généré
Certificats HTTPS automatiques#
Traefik fonctionne avec cert-manager pour fournir du HTTPS automatique à tous vos services. Voir Gestion des certificats pour les détails.
Utiliser IngressRoute de Traefik (Optionnel)#
Pour du routage avancé, Traefik fournit son propre CRD appelé IngressRoute :
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: my-app
namespace: my-namespace
spec:
entryPoints:
- websecure
routes:
- match: Host(`my-app.internal`)
kind: Rule
services:
- name: my-app
port: 80
tls:
secretName: my-app-tlsIngressRoute offre plus de fonctionnalités comme :
- Load balancing pondéré
- Routage basé sur les headers
- Chaînes de middlewares
Middlewares#
Les middlewares Traefik peuvent transformer les requêtes. Cas d'usage courants :
Authentification basique :
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: basic-auth
spec:
basicAuth:
secret: auth-secretRate Limiting :
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: rate-limit
spec:
rateLimit:
average: 100
burst: 50Redirection HTTP vers HTTPS :
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: redirect-https
spec:
redirectScheme:
scheme: https
permanent: trueAppliquer un middleware à une IngressRoute :
spec:
routes:
- match: Host(`my-app.internal`)
middlewares:
- name: basic-auth
- name: rate-limitDépannage#
Route qui ne fonctionne pas#
- Vérifiez que votre Ingress/IngressRoute n'a pas d'erreurs :
kubectl describe ingress my-app - Assurez-vous que le service backend existe et a des endpoints
Problèmes de certificat#
Voir Dépannage pour les problèmes SSL/TLS.
Erreurs 404#
- Vérifiez que le
hostcorrespond exactement (y compris le suffixe de domaine) - Vérifiez que le path correspond aux routes de votre application
- Assurez-vous que le port du service est correct
Prochaines étapes#
- Gestion des certificats - Comment fonctionne le HTTPS automatique
- Présentation de l'architecture - Voir comment Traefik s'intègre dans la stack