Traefik v3 reverse proxy and load balancer for Kubernetes and Docker...
Cloud-native reverse proxy and load balancer with automatic service discovery. Traefik connects incoming requests to backend services using dynamic configuration from providers (Kubernetes, Docker, etc.).
helm repo add traefik https://traefik.github.io/charts
helm install traefik traefik/traefik
Install CRDs manually (if needed):
kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.6/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml
kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.6/docs/content/reference/dynamic-configuration/kubernetes-crd-rbac.yml
| Component | Description |
|---|---|
| EntryPoints | Network ports where Traefik listens (e.g., :80, :443) |
| Routers | Match incoming requests using rules (Host, Path, Headers) |
| Services | Define backend targets with load balancing |
| Middlewares | Transform requests/responses (auth, headers, redirects) |
| Providers | Configuration sources (Kubernetes, Docker, File) |
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: myapp
namespace: default
spec:
entryPoints:
- websecure
routes:
- match: Host(`myapp.example.com`)
kind: Rule
services:
- name: myapp-svc
port: 80
middlewares:
- name: myapp-headers
tls:
certResolver: letsencrypt
# traefik.yml (static configuration)
entryPoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: ":443"
providers:
kubernetesCRD: {}
kubernetesIngress: {}
certificateResolvers:
letsencrypt:
acme:
email: admin@example.com
storage: /data/acme.json
httpChallenge:
entryPoint: web