This article is available in French.
1. Installer avec Helm #
Le chart officiel.
Installation #
helm repo add traefik https://traefik.github.io/charts
helm repo update
helm upgrade --install traefik traefik/traefik -n traefik --create-namespace \
--set deployment.replicas=2 \
--set providers.kubernetesGateway.enabled=true
kubectl -n traefik get pods,svcTrois façons de déclarer une route #
| Objet | Avantages | Limites |
|---|---|---|
Ingress (standard) | Portable entre contrôleurs | Peu expressif ; options par annotations |
IngressRoute (CRD Traefik) | Toutes les fonctions de Traefik, middlewares natifs | Spécifique à Traefik |
HTTPRoute (Gateway API) | Standard moderne, rôles séparés (Gateway / Route) | Support des filtres variable selon le contrôleur |
2. Exemples #
IngressRoute et Gateway API.
IngressRoute avec middleware #
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata: { name: securite, namespace: app }
spec:
headers: { stsSeconds: 31536000, contentTypeNosniff: true }
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata: { name: app, namespace: app }
spec:
entryPoints: [websecure]
routes:
- match: Host(`app.exemple.fr`)
kind: Rule
middlewares: [{ name: securite }]
services: [{ name: app, port: 80 }]
tls: { secretName: app-tls }HTTPRoute (Gateway API) #
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata: { name: app, namespace: app }
spec:
parentRefs: [{ name: traefik-gateway, namespace: traefik }]
hostnames: ["app.exemple.fr"]
rules:
- matches: [{ path: { type: PathPrefix, value: /api } }]
backendRefs: [{ name: api, port: 8080 }]3. Production #
Disponibilité, certificats, sécurité.
Règles #
- Au moins deux réplicas, un
PodDisruptionBudgetet une anti-affinité pour les répartir sur plusieurs nœuds. - Certificats : cert-manager qui crée les Secrets TLS ; le résolveur ACME intégré stocke son état dans un fichier, peu adapté à plusieurs réplicas.
externalTrafficPolicy: Localpour conserver l'adresse IP réelle des clients.- Tableau de bord non exposé publiquement ; métriques Prometheus activées.
- Limiter les namespaces surveillés (
providers.kubernetesCRD.namespaces) sur un cluster partagé.
kubectl get ingressroute,middleware -A
kubectl -n traefik logs deploy/traefik --tail=50
kubectl -n traefik port-forward deploy/traefik 9000:9000 # tableau de bord en local : http://localhost:9000/dashboard/My progress
Sign in to track your progress and take notes. Sign in
Recommended Articles
HAProxy dans Kubernetes : L'Ingress Controller Haute Performance
Découvrez en profondeur l'intégration de HAProxy dans Kubernetes. Architecture Direct-to-Pod, opt...
HAProxy comme Ingress Controller Kubernetes : Le Guide de Production
Découvrez comment utiliser HAProxy comme Ingress Controller dans Kubernetes. Architecture Direct-...
Kubernetes : exposer ses applications (Services, Ingress et Gateway API)
Exposer des applications dans Kubernetes : Services ClusterIP/NodePort/LoadBalancer, Ingress, Ing...
Traefik : les providers (Docker, Kubernetes, Nomad, Consul, fichiers, clés-valeurs)
Les providers alimentent la configuration dynamique de Traefik : découverte des services Docker, ...
Traefik : sécuriser et transformer les requêtes avec les middlewares (BasicAuth, ForwardAuth…)
Les middlewares Traefik modifient les requêtes et réponses entre le routeur et le service : authe...
Canary automatisé avec Flagger et Traefik sur Kubernetes
Automatiser les déploiements canary avec Flagger et Traefik : ressource Canary, analyse des métri...
L'API de Traefik : inspecter la configuration et sécuriser le tableau de bord
Utiliser l'API REST de Traefik pour inspecter routeurs, services, middlewares et entrypoints, l'e...
Les plugins Traefik : l'exemple de CrowdSec pour bloquer les attaques
Étendre Traefik avec des plugins (catalogue officiel, interpréteur Yaegi), puis protéger ses appl...
Traefik : les métriques avec Prometheus et OpenTelemetry
Exposer les métriques de Traefik (Prometheus ou OTLP), comprendre les séries par entrypoint, rout...