RousselTMLEARNING

Article · Traefik: From Discovery to Expertise

Traefik as an Ingress Controller for Kubernetes

This article is available in French.

1. Installer avec Helm #

Le chart officiel.

Installation #

Traefik Ingress Controller
Traefik lit les objets de routage dans l'API Kubernetes et route le trafic vers les Services.
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,svc

Trois façons de déclarer une route #

ObjetAvantagesLimites
Ingress (standard)Portable entre contrôleursPeu expressif ; options par annotations
IngressRoute (CRD Traefik)Toutes les fonctions de Traefik, middlewares natifsSpé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 PodDisruptionBudget et 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: Local pour 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/

📄 Traefik comme Ingress Controller pour Kubernetes (Helm, IngressRoute, Gateway API) →

My progress

  • ⏱ Estimated time : ≈ 7 min

Sign in to track your progress and take notes. Sign in

💬 Ask a question

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...

Support us

♥ SUPPORT US

Support RousselTM Learning

Courses, articles, labs and certificates stay free with no intrusive ads. A voluntary contribution, of any amount you choose, pays for hosting, lab environments and new content.

Contribute with PayPal Any amount · card or PayPal accountLearn more
QR code PayPal
Or scan this QR code with your phone

Thank you, every contribution counts!