Traefik v2.7 releases: modern HTTP reverse proxy and load balancer

Traefik (pronounced traffic) is a modern HTTP reverse proxy and load balancer that makes deploying microservices easy. Traefik integrates with your existing infrastructure components (DockerSwarm modeKubernetesMarathonConsulEtcdRancherAmazon ECS, …) and configures itself automatically and dynamically. Pointing Traefik at your orchestrator should be the only configuration step you need.

Imagine that you have deployed a bunch of microservices with the help of an orchestrator (like Swarm or Kubernetes) or a service registry (like etcd or consul). Now you want users to access these microservices, and you need a reverse proxy.

Traditional reverse-proxies require that you configure each route that will connect paths and subdomains to each microservice. In an environment where you add, remove, kill, upgrade, or scale your services many times a day, the task of keeping the routes up to date becomes tedious.

This is when Traefik can help you!

Traefik listens to your service registry/orchestrator API and instantly generates the routes so your microservices are connected to the outside world — without further intervention from your part.

Run Traefik and let it do the work for you! (But if you’d rather configure some of your routes manually, Traefik supports that too!)

 

Features

  • Continuously updates its configuration (No restarts!)
  • Supports multiple load balancing algorithms
  • Provides HTTPS to your microservices by leveraging Let’s Encrypt (wildcard certificates support)
  • Circuit breakers, retry
  • See the magic through its clean web UI
  • Websocket, HTTP/2, GRPC ready
  • Provides metrics (Rest, Prometheus, Datadog, Statsd, InfluxDB)
  • Keeps access logs (JSON, CLF)
  • Fast
  • Exposes a Rest API
  • Packaged as a single binary file (made with ❤️ with go) and available as a tiny official docker image

Changelog v2.7 

Enhancements:

  • [consulcatalog] Watch for Consul events to rebuild the dynamic configuration (#8476 by JasonWangA)
  • [healthcheck] Add Failover service (#8825 by tomMoulard)
  • [http3] Configure advertised port using h3 server option (#8778 by kevinpollet)
  • [http3] Upgrade quic-go to v0.25.0 (#8760 by sylr)
  • [hub] Add Traefik Hub Integration (Experimental Feature) (#8837 by jbdoumenjou)
  • [k8s/crd,k8s] Allow empty services in Kubernetes CRD (#8802 by tomMoulard)
  • [metrics] Support InfluxDB v2 metrics backend (#8250 by sh7dm)
  • [plugins] Remove Pilot token setup constraint to use plugins (#8869 by ldez)
  • [provider] Refactor configuration reload/throttling (#6633 by rkojedzinszky)
  • [rules,tcp] Add HostSNIRegexp rule matcher for TCP (#8849 by rtribotte)
  • [tcp] Add muxer for TCP Routers (#8182 by dtomcej)
  • [webui,pilot] Add Traefik Hub access and remove Pilot access (#8848 by tomMoulard)
  • [webui] Add a link to service on router detail view (#8821 by Tchoupinax)

Bug fixes:

  • [hub] Skip Provide when TLS is nil (#9031 by ldez)
  • [tcp] Fix TCP-TLS/HTTPS routing precedence (#9024 by rtribotte)
  • [webui,hub] Use dedicated entrypoint for the tunnels (#9023 by youkoulayley)

Documentation:

Misc:

Download