DEV Community

Alex Spinov
Alex Spinov

Posted on

Traefik Has a Free API: The Cloud-Native Reverse Proxy and Load Balancer

Why Traefik

Traefik auto-discovers services from Docker, Kubernetes, Consul, and more. Add a container — Traefik routes to it. Remove it — Traefik updates. No config reload needed.

Docker Compose Setup

services:
  traefik:
    image: traefik:v3.0
    command:
      - --api.insecure=true
      - --providers.docker
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --certificatesresolvers.le.acme.email=admin@example.com
      - --certificatesresolvers.le.acme.storage=/acme.json
      - --certificatesresolvers.le.acme.httpchallenge.entrypoint=web
    ports:
      - 80:80
      - 443:443
      - 8080:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./acme.json:/acme.json

  myapp:
    image: myorg/myapp:latest
    labels:
      - traefik.http.routers.myapp.rule=Host(`app.example.com`)
      - traefik.http.routers.myapp.tls.certresolver=le
      - traefik.http.services.myapp.loadbalancer.server.port=8080
Enter fullscreen mode Exit fullscreen mode

Just add labels to your container — Traefik handles routing and HTTPS.

Kubernetes IngressRoute

apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: myapp
spec:
  entryPoints:
    - websecure
  routes:
    - match: Host(`app.example.com`) && PathPrefix(`/api`)
      kind: Rule
      services:
        - name: api-service
          port: 8080
      middlewares:
        - name: rate-limit
  tls:
    certResolver: le
Enter fullscreen mode Exit fullscreen mode

Middleware

apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: rate-limit
spec:
  rateLimit:
    average: 100
    burst: 50
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: auth
spec:
  basicAuth:
    secret: auth-secret
Enter fullscreen mode Exit fullscreen mode

Key Features

  • Auto-discovery — Docker, Kubernetes, Consul, etcd
  • Automatic HTTPS — Let's Encrypt built-in
  • Dashboard — web UI at port 8080
  • Middleware — rate limiting, auth, headers, compression
  • TCP/UDP — not just HTTP
  • Metrics — Prometheus, Datadog, InfluxDB

Resources


Need to extract proxy configs, routing rules, or traffic data? Check out my Apify tools or email spinov001@gmail.com for custom solutions.

Top comments (0)