Skip to main content
πŸŽ“ Claude Code Masterclass Learn AI-assisted development on Udemy β€” plus the companion book on Leanpub & Amazon. Start Learning
Kubernetes Ingress: NGINX vs Traefik vs Envoy Gateway (2026)
DevOps

Kubernetes Ingress: NGINX vs Traefik vs Envoy Gateway (2026)

Choose the right ingress controller β€” performance benchmarks, TLS termination, rate limiting, and Gateway API support comparison.

LB
Luca Berton
Β· 1 min read

Ingress Controllers Compared

FeatureNGINX IngressTraefikEnvoy Gateway
Performance (RPS)50K+40K+60K+
Memory (idle)100MB50MB150MB
Config reloadnginx reload (brief drop)Hot reload (zero-drop)Hot reload
Gateway APIβœ… (v1.2+)βœ…βœ… (native)
Rate limitingβœ… (annotation)βœ… (middleware)βœ… (native)
mTLSβœ…βœ…βœ…
WASM pluginsβŒβŒβœ…
DashboardβŒβœ… Built-in❌
LicenseApache 2.0MITApache 2.0
BackingF5/NGINXTraefik LabsEnvoy/CNCF

NGINX Ingress Controller

The most widely deployed (40%+ market share):

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: api
  annotations:
    nginx.ingress.kubernetes.io/rate-limit: "100"
    nginx.ingress.kubernetes.io/proxy-body-size: "50m"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/cors-allow-origin: "https://app.example.com"
spec:
  ingressClassName: nginx
  tls:
    - hosts: [api.example.com]
      secretName: api-tls
  rules:
    - host: api.example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: api-service
                port:
                  number: 8080

Traefik

Auto-discovers services, built-in dashboard:

apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: api
spec:
  entryPoints:
    - websecure
  routes:
    - match: Host(`api.example.com`)
      kind: Rule
      services:
        - name: api-service
          port: 8080
      middlewares:
        - name: rate-limit
        - name: compress
  tls:
    certResolver: letsencrypt
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: rate-limit
spec:
  rateLimit:
    average: 100
    burst: 200

Envoy Gateway (Gateway API Native)

The future β€” built on Gateway API standard:

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: main
spec:
  gatewayClassName: envoy
  listeners:
    - name: https
      protocol: HTTPS
      port: 443
      tls:
        mode: Terminate
        certificateRefs:
          - name: wildcard-tls
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: api-route
spec:
  parentRefs:
    - name: main
  hostnames:
    - "api.example.com"
  rules:
    - matches:
        - path:
            type: PathPrefix
            value: /v1
      backendRefs:
        - name: api-v1
          port: 8080
          weight: 90
        - name: api-v2
          port: 8080
          weight: 10  # Canary!

When to Choose Which

ScenarioBest Choice
Simple apps, proven stabilityNGINX
Auto-discovery, Docker/Swarm migrationTraefik
Advanced traffic management, Gateway APIEnvoy Gateway
Existing NGINX expertiseNGINX
Need built-in dashboardTraefik
gRPC-heavy, HTTP/3Envoy Gateway
Maximum raw performanceEnvoy Gateway

Gateway API: The Future

Gateway API replaces Ingress as the standard. All three controllers now support it:

# Same spec works across NGINX, Traefik, and Envoy
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute

My recommendation for 2026: Start new projects with Gateway API. Migrate existing Ingress resources gradually.

Free 30-min AI & Cloud consultation

Book Now