Project

General

Profile

Actions

Task #65

open

Milestone #63: GateWay Manager

Traefik & Kubernetes

Task #65: Traefik & Kubernetes

Added by Daniele Cruciani 3 months ago. Updated 3 months ago.

Status:
new
Priority:
wishlist
Assignee:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Sprint:

Description

[2025-12-07 21:20]

Sì, Traefik è un reverse proxy a tutti gli effetti.
Sotto il cofano fa routing L7 (HTTP) e L4 (TCP/UDP), terminazione TLS, middleware, load balancing.
La differenza rispetto a NGINX/HAProxy è che la configurazione è dinamica: non devi mai ricaricare file di config.

Ora ti spiego in modo pratico come funziona “backend” e “frontend”, concetti ereditati dalla v1 ma ancora utili per capire la logica.

✔ Traefik = Reverse Proxy dinamico

Quando arriva una richiesta:
1. guarda l’hostname / path / ACL
2. decide a quale “service” inoltrare (cluster interno)
3. applica middleware (auth, rate limit, header, rewrite…)
4. bilancia il carico sui pod target

Tutto qui.
È un reverse proxy che si aggiorna leggendo ingress, crd, label docker, ecc.

Backend e Frontend: concetto storico (ma ancora valido)

Nelle versioni vecchie (<v2), Traefik aveva due oggetti distinti:
• Frontend = come riconosco la richiesta? (regole di routing)
• Backend = dove inoltro il traffico? (target servers)

La v2 usa nomi diversi, ma la logica è IDENTICA:

Traefik v1 Traefik v2 (oggi) Significato
Frontend Router Regole: host, path, method…
Backend Service Lista server/pod da contattare
Middleware Middleware Azioni sulla richiesta

Questa distinzione è pratica:
Prima capisci se la richiesta deve entrare, poi dove deve andare.

Spiegazione chiara dei componenti v2

  1. Router (ex Frontend)

Fa matching sul traffico in ingresso.

Esempi:
• Host("api.example.com")
• PathPrefix("/v1/")
• Method("GET")
• TLS on/off, SNI, ecc.

Il router collega:
entrypoint → middleware → service

  1. Service (ex Backend)

È l’oggetto che rappresenta i server di destinazione.

Può essere:
• un Service Kubernetes (ClusterIP)
• un IP/porta statico
• un servizio TCP o UDP
• un load balancer round-robin
• un mirror di traffico

Esempio (CRD semplificata):

kind: TraefikService
spec:
loadBalancer:
servers:
- url: http://my-service:8080

  1. Middleware

Azioni sulla richiesta prima di arrivare al service:
• autenticazione
• rewrite path
• rate limit
• redirect https
• compressione
• header injection
• buffering
• strip prefix
• IP whitelist
• checksum JWT (in teoria puoi farlo qui)

Middleware = mini pipeline componibile.

Flusso completo

[ Entrypoint (porta 80/443) ]
|
v
[ Router (match: host, path, method...)
|
v
[ Middleware chain ]
|
v
[ Service / Backend (pod target) ]

Per Kubernetes nello specifico

Router e Service derivano da:
• Ingress
• IngressRoute (CRD)
• Kubernetes Service
• Endpoints / EndpointSlice
• Annotations o CRD Middleware

Traefik non crea nulla nel cluster:
legge tutto e aggiorna la sua mappa di routing interna.

Risposta secca alle tue domande

Traefik agisce come reverse proxy?

✔ Sì, senza dubbi.

Cos’è il frontend Traefik?

→ In v1 = regole di routing.
→ In v2 = Router.

Cos’è il backend Traefik?

→ In v1 = server target.
→ In v2 = TraefikService / load balancer verso pod.

Se vuoi ti preparo uno schema grafico semplice o una mappa mentale dei componenti Traefik.

Actions

Also available in: PDF Atom