Traffic Management in Kubernetes: From Traefik to Istio, Life After NGINX
Serdarcan Büyükdereli
Nov 20, 2025
19 min read
3714 words
Now that NGINX Ingress is basically saying “I’m slowly heading to retirement,” everyone has the same question in their head:
“So… who do we trust with all this traffic now?”
In this post, we’re putting eight major players in the Kubernetes traffic game on the table:
Traefik
HAProxy Ingress Controller
Kong Ingress Controller
Contour
Pomerium Ingress Controller
kgateway
Istio Ingress Gateway
Cilium Ingress Controller
Target audience: DevOps / SRE / Platform Engineers who do not lose their heart rhythm when they see kubectl get events.
Style: Technical, precise, mildly sarcastic, still respectful.
We’ll follow this structure:
Short explanation per category
Under each category, tool-by-tool mini breakdown
Short YAML snippets here and there
One big 1–5 scoring comparison table at the end
If you’re ready, let’s kubectl port-forward this into your brain.
1. Controller Architecture
Here we answer “how does this thing actually work?”
Envoy or not, single binary or not, control-plane / data-plane split, sidecars, CRDs…
Traefik
Architecture: Single binary that acts as both control-plane and data-plane. In Kubernetes it usually runs as a Deployment + Service.
APIs: Classic Ingress, its own CRDs (IngressRoute, Middleware, etc.), and a production-ready Gateway API implementation.
Strengths: Easy to install, quick to get working; low barrier for small/medium clusters.
Weaknesses: In very large, complex mesh-style environments, it’s not as “mesh-native” as Istio / Cilium / kgateway.
HAProxy Ingress Controller
Architecture: Go-based controller in front, classic HAProxy as the data-plane. Configuration is usually generated via ConfigMap + annotations into a HAProxy config file.
APIs: Ingress v1 is the main interface; recent versions also support Gateway API.
Strengths: HAProxy-level performance and strong TCP/L4 capabilities.
Weaknesses: CRD ecosystem is thinner than some others, configuration strategy is still heavily annotation + ConfigMap driven.
Kong Ingress Controller
Architecture: Separate Kong Gateway data-plane (NGINX + OpenResty) and a Kong Ingress Controller (KIC) acting as control-plane.
APIs: Ingress, Gateway API, and its own CRDs like KongPlugin, KongConsumer, etc.
Strengths: Very strong API gateway feature set; plugin ecosystem is huge.
Weaknesses: If you “just want a simple ingress,” it can feel a bit overkill and “enterprise-y”.
Contour
Architecture:Envoy as the data-plane, Contour as a separate control-plane. Envoy runs as a Deployment/DaemonSet, Contour runs as a separate Deployment.
APIs: Ingress, its own powerful HTTPProxy CRD, plus solid Gateway API support.
Strengths: Presents the power of Envoy through a relatively clean API; HTTPProxy is great for advanced L7 routing.
Weaknesses: Not a full mesh; lives mostly in the “ingress/gateway + strong L7” space.
Pomerium Ingress Controller
Architecture: Uses Pomerium as an identity-aware proxy for the data-plane, with an ingress controller-style control-plane layered around it.
APIs: Ingress, its own CRDs, and Gateway API support.
Strengths: Identity-centric access control (user, group, device context) is first-class. Perfect for “Zero Trust front door” use-cases.
Weaknesses: Not meant as a general-purpose L4/L7 load balancer; its main job is identity and policy.
kgateway
Architecture: Envoy-based data-plane with a single modular control-plane that unifies ingress, API gateway, service mesh, and even AI gateway functionality.
APIs: Designed Gateway API first; evolved from Gloo experience into a modern control-plane.
Strengths: Ambition to handle ingress + gateway + mesh with a single tool; very modern design.
Weaknesses: Brand-new identity compared to Istio / Cilium; ecosystem is growing but not yet “everywhere”.
Istio Ingress Gateway
Architecture: Classic service mesh: an Envoy sidecar in each pod, plus an Ingress Gateway Envoy Deployment at the edge. Control-plane is istiod.
APIs: Istio Gateway and VirtualService CRDs, plus strong Gateway API support. There is a clear roadmap to rely more on Gateway API in the future.
Strengths: Full mesh + L7 policy + security + advanced traffic management in one package.
Weaknesses: Learning curve is steep; heavy for small clusters.
Cilium Ingress / Gateway
Architecture: Hybrid model: eBPF-based L3/L4 and Envoy-based L7. Cilium is a CNI + service mesh; its Ingress and Gateway API support sit on top of that.
APIs: Ingress and Gateway API (HTTPRoute, GRPCRoute, TLSRoute, etc.).
Strengths: Very efficient data path with eBPF at the bottom and Envoy for L7; gateway and CNI from the same stack.
Weaknesses: If you “just want to route two services,” it can be overkill; you have to think about the cluster’s entire networking model.
2. Configuration & Annotation Compatibility
Here we look at:
“What’s the migration pain from Ingress + NGINX annotations?”
“How messy are the CRDs?”
“Is Gateway API supported?”
You also get a small YAML snippet per tool family.
Traefik
Support: Ingress, its own CRDs (IngressRoute, Middleware), and a mature Gateway API implementation.
From NGINX land: With newer Traefik versions, there’s specific effort to make life easier for people coming from ingress-nginx and annotation-heavy configs.
Complexity: If you dive into its CRDs, there’s some learning involved, but overall readability is decent.
Example Gateway + HTTPRoute (generic Gateway API, usable with many implementations):
Support: Ingress v1 as the main API; huge amount of behavior is controlled via annotations + ConfigMap; and there is Gateway API support coming up as well.
From NGINX land: Annotation mindset is similar; if you were already living in “NGINX annotation soup,” this will feel familiar.
Complexity: Very powerful, but the annotation list is long; going in without documentation can cause headaches.
Support: Ingress, HTTPProxy CRD, plus Gateway API support.
From NGINX land: Instead of annotations everywhere, you use HTTPProxy objects. At first it feels like “too many CRDs,” but readability increases a lot.
Complexity: HTTPProxy brings a lot of power; the trade-off is more YAML.
Support: Ingress and Gateway API (HTTPRoute, GRPCRoute, etc.) for modern traffic management.
From NGINX land: If you’re already on Cilium CNI, moving directly to Gateway API via Cilium Gateway is natural.
Complexity: Managing both networking and L7 together is powerful but mentally heavy; you’re not “just installing an ingress controller.”
3. Protocol & Traffic Support
Here we ask:
“Is it just HTTP, or does it handle TCP/UDP, gRPC, WebSocket, HTTP/3, mTLS, etc. naturally?”
Traefik
Supports HTTP/1.1, HTTP/2, WebSocket, gRPC, and with newer versions, HTTP/3 / QUIC as well.
TCP/UDP routing is possible, but its real strength is L7/HTTP.
Supports mTLS, TLS passthrough, SNI-based routing, etc.
HAProxy Ingress Controller
With HAProxy under the hood, you get full TCP/L4 capabilities: HTTP, TCP, TLS termination, raw TCP load balancing, and so on.
WebSocket, HTTP/2, gRPC proxying are supported; configuration is usually controlled via annotations/ConfigMaps.
Great candidate if you want to offload heavy L4 workloads into the cluster.
Kong Ingress Controller
Strong support for HTTP/1.1, HTTP/2, WebSocket, gRPC and even TCP/UDP; with Gateway API you can model this with different Route types.
mTLS, mutual authentication, and client certificate verification are provided via plugins such as mtls-auth.
Contour
Thanks to Envoy, you get HTTP/1.1, HTTP/2, gRPC, WebSocket, TLS termination out of the box. For pure TCP/UDP you usually rely on a separate load balancer.
With HTTPProxy you have powerful SNI and header-based HTTP routing.
Pomerium
Focus is on HTTP(S) traffic and identity-based authorization. If you want TCP/UDP, you typically layer another tool for that.
Strong in mTLS, identity, and OIDC integration.
kgateway
Envoy-based, so HTTP/1.1, HTTP/2, gRPC, WebSocket, TCP/TLS are all supported and controllable through Gateway API.
Also positions itself for “modern” traffic such as AI/LLM requests, with special routing/rate limiting scenarios.
Istio Ingress Gateway
Handles HTTP/1.1, HTTP/2, gRPC, WebSocket, TCP, mTLS, SNI—you name it.
Since it’s tied into the mesh, you also get the same protocol richness for east-west traffic inside the cluster.
Cilium Ingress / Gateway
With Gateway API you can manage HTTP, gRPC, TLS, TCP routing; GRPCRoute lets you do method-level routing.
Underneath, eBPF handles L3/L4 efficiently while Envoy gives you rich L7 capabilities.
Detailed audit logs and policy-level visibility for identity/access flows.
Very useful if your main question is “who did what, from where, and when”.
kgateway
Envoy + modern gateway ecosystem = OpenTelemetry, Prometheus, and structured logs all in one place.
Istio
Telemetry v2 provides extremely rich metrics, logs, and tracing. The Ingress Gateway is part of that same telemetry system.
Cilium
eBPF gives you flow-level metrics, policy hits, dropped packets; Envoy adds L7 metrics on top.
If you want to deeply understand what’s flowing across your cluster, it’s one of the best.
7. Performance & Resource Usage
Touchy subject—everyone claims to be the fastest. Let’s stay high-level and focus on general patterns plus some public benchmarks that compare configuration update times and latency.
From public Gateway API benchmarks, a few patterns:
Cilium, Istio, Kong stand out in terms of configuration update latency and responsiveness.
kgateway and NGINX-based solutions land in the middle.
Traefik often appears among the slower ones regarding config update latency.
This is mostly about control-plane / config application speed. Data-plane throughput is another dimension, but the results still show some interesting trends.
Traefik
Proxy type: L7-focused reverse proxy.
General feel: Config updates are somewhat heavier than some rivals, but in small/medium loads it’s not a big issue.
HAProxy Ingress
Proxy type: L4 + L7, benefiting from HAProxy’s well-known performance.
General feel: Very effective under high concurrency; just manage resource limits carefully.
Kong
Proxy type: NGINX/OpenResty-based L7 gateway with TCP/UDP support.
General feel: In API gateway scenarios, strong throughput and solid latency.
Contour
Proxy type: Envoy; modern high-performance L7 proxy.
General feel: Lightweight control-plane (Contour) with a strong data-plane (Envoy).
Pomerium
Proxy type: Identity-aware HTTP proxy.
General feel: You are paying for “inspect every request through policy,” which is expected; the value is in security, not raw throughput.
kgateway
Proxy type: Envoy, tuned for API gateway/microgateway and service/multi-mesh scenarios.
General feel: Built to handle large-scale, complex traffic management.
Istio
Proxy type: Envoy sidecar everywhere plus an Envoy Ingress Gateway.
General feel: Sidecars and extra hops do add overhead, but in return you get security and observability, which many enterprises find totally worth it.
Cilium
Proxy type: eBPF for L3/L4, Envoy for L7.
General feel: Excellent latency/throughput thanks to kernel-space optimizations and advanced L7 capabilities on top.
8. Installation & Community Support
We look at Helm charts, Operators, docs quality, GitHub activity, and enterprise support.
Traefik
Install: Helm charts, Operator, good Gateway API documentation.
Community: Very active; Traefik Labs blogs and Gateway API investments are strong.
HAProxy Ingress
Install: Helm charts and YAML manifests; both Community and Enterprise variants exist.
Community: HAProxy itself has a big community; the Kubernetes-specific bits are solid but not as mainstream as NGINX.
Kong
Install: Helm charts, KIC documentation, and managed options via Kong Konnect.
Community: Very active OSS + Enterprise user base; widely used in large companies.
Contour
Install: Helm, manifests, and detailed guides for enabling Gateway API.
Community: CNCF project; close ties with the Envoy ecosystem.
Pomerium
Install: Helm charts, identity-focused docs, cert-manager/Gateway API integration guides.
Community: Popular in security and Zero Trust circles.
kgateway
Install: Official quickstarts and docs focused on Envoy + Gateway API setups.
Community: Builds on the Gloo heritage and integrates with CNCF / Gateway API ecosystem; quickly growing.
Istio
Install: istioctl, Helm, ambient/sidecar modes; a huge documentation set.
Community: CNCF heavyweight; widely adopted in both research and industry.
Cilium
Install: One stack for CNI + service mesh + gateway; Helm charts and very detailed blogs and guides.
Community: Star of the CNI world; serious investments into Gateway API as well.
9. Ecosystem & Compatibility
Cloud vendor integrations, compatibility with other CNCF projects, plugin/extensions…
All of them work on AKS/EKS/GKE and other managed Kubernetes offerings because they’re plain Kubernetes controllers/CRDs.
The Gateway API itself is designed to be vendor-neutral and role-oriented, so these implementations are meant to coexist nicely.
Traefik
Works nicely on bare-metal, on-prem, and all major clouds.
Middleware concept (rate limiting, auth, WAF integration, etc.) acts as a lightweight plugin model.
HAProxy Ingress
HAProxy runs everywhere; Kubernetes integration is multi-cloud friendly.
Particularly useful when you want to offload complex TCP/UDP traffic from cloud load balancers.
Kong
Can be used as Kubernetes ingress/gateway or as a classical API gateway on VMs; great for hybrid and multi-cloud.
Plugin ecosystem brings integrations for observability, security, transformations, and many third-party systems.
Contour
Envoy-powered; plays well with Istio, Cilium, and other Envoy-based projects.
Pomerium
Deep integrations with identity providers (OIDC, SAML, Google Workspace, etc.); can protect non-Kubernetes apps as well.
kgateway
Aims to be one of the reference implementations of a modern Gateway API-based Envoy controller.
Positioned to work well with multiple meshes and cloud environments.
Istio
Integrates tightly with Envoy, Prometheus, Jaeger/Tempo, Kiali, Grafana, and many CNCF tools.
Cilium
CNI + mesh + gateway = you’re effectively buying most of your Kubernetes networking/security stack from one provider, while still integrating with lots of CNCF projects.
10. Future-Proofing & Roadmap
This is the “Will I still sleep well 3–5 years from now?” section.
Ingress API is stable but limited, and its heavy reliance on annotations has become a common pain point.
Gateway API is the “next generation” replacement for Ingress, designed to be more expressive, role-based, and vendor-neutral.
The ingress-nginx project is sliding into EOL territory in the coming years, which pushes the ecosystem naturally towards Gateway API + newer controllers.
In that picture:
Tools that are Gateway API first (kgateway, Cilium, Istio, Traefik, Kong, Contour, Pomerium, HAProxy) look like the safest long-term bets.
Mesh-centric ecosystems like Istio and Cilium will likely keep pushing the “service mesh + gateway + security + observability” package approach.
kgateway is clearly aiming for the future with Envoy + Gateway API + AI/LLM gateway capabilities.
In short:
The future is Gateway API, and the winners are going to be the stacks that combine Envoy/eBPF with strong, flexible control-planes.
Scoring Scale
Before we dive into the big table, let’s define the scale:
1 → “Please don’t try this in prod.”
2 → “Fine for a PoC, but think twice before prod.”
3 → “It works, but you’ll sweat a bit.”
4 → “Solid choice, even for serious environments.”
5 → “Ship it to prod and don’t look back too often.”
This is subjective, but rooted in the analysis above.
Comparison Table (1–5)
Note: These are general evaluations. For specific use-cases, scores can shift (e.g. if you’re purely doing identity-aware access, Pomerium gets an automatic +1 in your context).
"
Tool
Controller Architecture
Config Simplicity
Protocol & Traffic
Traffic Management
Security
Observability
Performance & Resource
Install Simplicity
Ecosystem & Community
Future-Proofing
Traefik
4
4
4
3
3
4
3
4
4
4
HAProxy Ingress
4
3
4
3
3
3
4
3
3
3
Kong Ingress
4
3
5
5
5
4
4
3
5
5
Contour
4
3
4
4
4
4
4
3
4
4
Pomerium Ingress
3
3
3
2
5
4
3
3
4
4
kgateway
5
3
5
5
4
4
4
3
4
5
Istio Ingress Gateway
5
2
5
5
5
5
4
2
5
5
Cilium Ingress/Gateway
5
3
5
4
4
5
5
3
5
5
Quick notes:
Traefik – Easy to learn, flexible, playing nicely with Gateway API; might feel a bit “light” if you want super-advanced traffic policies.
HAProxy Ingress – Performance beast, especially for TCP/L4; annotation-centric config gives slight “old school” vibes.
Kong – If you want “Ingress + API Gateway + security + plugins,” it’s very compelling; the trade-off is complexity.
Contour – Nice option if you want Envoy power with a clean, focused control-plane and HTTPProxy.
Pomerium – Less of an ingress and more of an “identity-aware secure front door”; a joker card for SSO/Zero Trust.
kgateway – Rising star of the Gateway API era; Envoy + modular control-plane + AI/LLM features make it very future-leaning.
Istio – If you want everything—mesh, mTLS, canary, observability—this is one of the strongest packages, and also one of the hardest to master.
Cilium – If you want networking + security + gateway all in an eBPF-powered stack, it’s a very strong long-term investment.
Closing Thoughts
With NGINX Ingress walking toward EOL, the good news is:
You have many options, and they’re not just Ingress controllers—they’re doorways into a world of Gateway API + mesh + security.
As a rough compass:
For a simple but modern ingress: Traefik, Contour, HAProxy Ingress
For Ingress + API Gateway + plugins galore: Kong, kgateway
For “mesh everything, secure everything”: Istio, Cilium
For VPN-less, Zero Trust front door: Pomerium
The rest depends on your system’s complexity, your team’s patience, and who you’d like to blame when the pager goes off at 3 AM.