$ k8scalc compare nginx ingress traefik
nginx Ingress vs Traefik
nginx Ingress Controller vs Traefik for Kubernetes — configuration model, performance, resource usage, TCP/UDP routing, middleware, and self-hosted ease of use.
Featurenginx IngressTraefik
Configuration model
Annotations + ConfigMap
IngressRoute CRDs
Auto service discovery
No — manual annotation
Yes — label-based
Built-in dashboard
No (use Grafana)
Yes (port 8080)
TCP/UDP routing
Via ConfigMap (limited)
Yes (IngressRouteTCP/UDP)
Middleware / plugins
Annotations only
Middleware CRD chain
mTLS / cert management
Via cert-manager
Built-in (Let's Encrypt)
Resource usage (idle)
~50 MB RAM, 0.02 vCPU
~30 MB RAM, 0.01 vCPU
Max throughput
Very high (C core)
High (Go)
Raw performance
Highest (battle-tested)
Good (Go HTTP)
Documentation quality
Excellent
Good
Cloud provider support
Universal
Good
Rate limiting
Annotation-based
Middleware CRD
Weighted routing / canary
Via annotations (limited)
Via weighted IngressRoute
WebSocket support
Yes—
Yes—
gRPC support
Yes (annotation)
Yes (native)
Verdict
nginx Ingress Controller is the safe default — battle-tested, widely documented, and supported by every cloud provider. Traefik wins on Kubernetes-native UX: automatic service discovery, IngressRoute CRDs, and a built-in dashboard make it faster to configure without YAML annotations. For teams that want zero-config ingress from a Helm chart, Traefik. For teams that prioritise maximum documentation, community, and cloud compatibility, nginx.