Traefik is a reverse proxy and load balancer that writes its own configuration. Instead of a static file that an engineer edits and reloads, Traefik watches providers — the Docker socket, Docker Swarm, the Kubernetes API through Ingress, the IngressRoute custom resources or the Gateway API, plus Consul, Nomad, ECS, etcd, Redis and plain files — and rebuilds its routing table live as services appear, scale and disappear. Configuration is split deliberately into static configuration, which defines entry points, providers and cluster-level settings and requires a restart, and dynamic configuration, which defines routing and is reloaded continuously.
The routing model is four objects deep and worth learning precisely, because almost every Traefik problem is a misunderstanding of one of them. An entry point is a listening socket — a port and protocol. A router matches incoming requests with a rule expression built from Host, PathPrefix, Path, Headers, Method, Query and ClientIP matchers combined with logical operators, and a priority that decides which router wins when several match. Between the router and its destination sits an ordered middleware chain, and a service describes the actual back ends, their load-balancing strategy, health checks, sticky sessions and weighting.
Middleware is where most real behaviour lives: stripPrefix for path rewriting, redirectScheme, headers for security and CORS, basicAuth and forwardAuth for delegated authentication, rateLimit, circuitBreaker and retry for resilience, compress and ipAllowList. TLS is first-class: Traefik obtains and renews Let's Encrypt certificates itself through HTTP-01, TLS-ALPN-01 or DNS-01 challenges, and TLS options control minimum version, cipher suites and mutual TLS. Beyond HTTP it routes raw TCP by SNI and UDP by port, and exposes access logs, Prometheus metrics and OpenTelemetry tracing.
Why this skill matters now
The front door became a moving target. When back ends were a fixed list of servers, a hand-maintained NGINX or HAProxy configuration was reasonable. Once services are scheduled by an orchestrator, scale on demand and change addresses several times a day, any configuration a human edits is stale before it is committed — which is why the proxy layer moved from static files to controllers that read the platform's own state.
Traefik sits at that junction in a large number of estates. It is the default ingress controller in K3s, a standard choice in mid-size Kubernetes clusters, and by far the most common edge proxy in Docker and Docker Swarm deployments because a container can declare its own routing through labels. That breadth means the skill transfers: the same router, middleware and service model applies whether the provider is a Docker socket or the Kubernetes API.
The demand, as usual, is for depth rather than a first success. Getting one service reachable over HTTPS takes an afternoon. What organisations hire for is the rest: middleware chains that authenticate and rate-limit correctly, TLS with DNS-01 challenges and wildcard certificates behind a firewall, mutual TLS between tiers, weighted and mirrored routing for progressive delivery, priority rules that resolve overlapping hosts, and the ability to explain from access logs and the dashboard why a request went somewhere unexpected.