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

Traefik : vue d'ensemble, architecture et premier déploiement

Découvrir Traefik : reverse proxy et load balancer cloud-native, entrypoints, routers, services, ...

Installation de HAProxy

Guide complet pour installer HAProxy sur les serveurs Linux (Debian, RedHat) et via des environne...

Traefik : les logs (journaux applicatifs et access logs)

Configurer les deux journaux de Traefik : le journal de fonctionnement (niveaux, format) et les a...

Traefik : le tracing distribué avec OpenTelemetry

Activer le tracing de Traefik v3 avec OpenTelemetry (OTLP), propager le contexte W3C vers les app...

Stratégies de déploiement avec Traefik : blue/green, canary et rolling

Mettre en œuvre les stratégies de déploiement avec Traefik : rolling update par l'orchestrateur, ...

Bonnes pratiques Traefik : sécurité, haute disponibilité et observabilité

Bonnes pratiques Traefik : sécurisation du dashboard et du socket Docker, TLS moderne, middleware...

Gestion des certificats SSL/TLS avec Let's Encrypt et ACME

Apprenez à automatiser la génération et le renouvellement de vos certificats SSL/TLS avec Let's E...

Protocole ACME : serveur ACME, challenges http-01 et dns-01, automatisation TLS

Comprendre le protocole ACME : rôle du serveur ACME (Let's Encrypt, ZeroSSL, step-ca), challenges...

Kubernetes : architecture et composants (control plane, nœuds, objets)

Comprendre l'architecture de Kubernetes : API server, etcd, scheduler, controller manager, kubele...

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!