TL;DR: Istio and Cilium hit CNCF graduation, the finish line that was supposed to end the service mesh debate. Instead, internal conversations flipped from "which mesh?" to "do we still need one?" The graduation data is real. The adoption collapse is also real. The real question for CTOs in 2026 isn't which mesh to pick. It's whether the operational tax of a sidecar mesh is still worth what you bought it for.
Key Takeaways: - CNCF graduation didn't boost mesh adoption. The 2025 survey confirmed the decline was already underway. - The headline adoption numbers from the 2021 microsurvey measured installs, not satisfaction. The same survey showed 47% of teams cite a shortage of platform engineering talent. - Linkerd's two-year graduation head start made it the default for teams that needed mTLS without the Istio operational tax.
The Graduation Trophy Is Collecting Dust in Your Cluster

Istio and Cilium crossed the CNCF graduation line in the second half of 2023. Linkerd had already been there since 2021. By the standard story, graduation is the moment an open-source project earns enterprise trust.
It's the stamp that says "safe to bet your platform on." For most projects, graduation is when adoption accelerates. For service meshes, the opposite happened.
Graduation triggered an internal audit at a lot of companies. The question on the table shifted from "which mesh do we standardize on?" to "do we still need one at all?"
CNCF graduation didn't resolve the mesh debate. It sharpened it.
That two-year gap between Linkerd's graduation and the next class of graduates is the single most underrated fact in the current service mesh conversation. It shaped enterprise defaults. It hardened risk-averse buyers' preferences. And it gave one project a reputational head start its rivals never recovered from.
The CNCF's 2025 survey later confirmed what senior engineers had been saying in Slack for months. Adoption was softening as the projects themselves matured.
The adoption numbers the ecosystem has been quoting for years tell a more complicated story than the graduation announcement implied.
The Adoption Stat Is a Lie (Or at Least a Misleading Truth)
The CNCF's 2021 microsurvey reported widespread mesh adoption. The number is technically true. As a buy signal, it's almost useless.
Here's what the same survey actually reported when you read past the headline. The top non-technical blocker was a shortage of engineering expertise and experience, at 47%.
Other top blockers included architectural complexity and a lack of guidance, blueprints, and best practices.
So nearly half of the teams using a mesh admitted they didn't have the people to run one well. That's a measurement of install base, not a measurement of whether those teams would pick the mesh again from scratch.
Most didn't choose the mesh. The mesh got adopted during a Kubernetes gold rush. The prevailing wisdom was "every cloud-native shop runs a mesh."
Adoption is a lagging indicator of install base. The current decision (keep, swap, or remove) is a leading indicator of whether the mesh earned its place. Those two indicators have been diverging for two years.
The CNCF's 2025 survey caught up to what teams were already doing in private.
The complexity argument isn't abstract. It shows up as a specific, measurable tax on every request that hits the mesh.
Sidecar Overhead: The Bill That Comes Due at Scale
Every sidecar injects three things into every pod. Latency per hop. Memory per container.
There's also a control plane dependency your service mesh team has to babysit. At a handful of services with low east-west chatter, you can't see any of it. As fleet size grows with chatty inter-service calls, the tail latency tax becomes a line item your finance team will eventually notice.
This is where the one independent throughput benchmark in the public conversation, LiveWyer's test, matters. Linkerd came out ahead on raw performance in that benchmark.
Istio and Cilium were not slow in absolute terms. They were slower per hop than Linkerd under load.
For teams that measure p99 latency as a first-class concern, that gap flipped the default. "Istio is the obvious choice" became "Linkerd is the safer pick for greenfield deployments."
Here's what sidecar injection looks like in practice. A Linkerd-enabled pod requires one annotation:
1apiVersion: apps/v12kind: Deployment3metadata:4 name: orders5spec:6 replicas: 37 template:8 metadata:9 annotations:10 linkerd.io/inject: enabled11 spec:12 containers: - name: app13 image: orders:v2.1
That one annotation buys you mTLS, telemetry, and retries for every pod in the deployment. The trade-off is per-pod memory and per-hop latency. The tax compounds as the fleet grows.
The same goes for every mesh. The difference is how much the tax costs.
Istio's Envoy-based sidecar is heavier. Linkerd's Rust-based proxy is lighter. Cilium skips the sidecar entirely via eBPF.
Each model has a different bill when the fleet gets large. A lot of the post-mortem work on microservice outages traces back to the proxy layer that nobody owns.
This is where Linkerd's two-year graduation head start starts to matter in ways that go beyond raw engineering.
Linkerd Won the Trust Game Before the Feature War

Linkerd was the only graduated service mesh from 2021 through the second half of 2023. That window coincided with the period when mTLS and zero trust security stopped being infrastructure concerns and started being board-level requirements.
Risk-averse enterprise buyers had one graduated option for two years. Their procurement teams required a graduation stamp before signing purchase orders. They picked Linkerd.
They baked it into default architectures. They trained their platform teams on it.
The design choice that aged best during that window was Linkerd's mTLS-by-default posture. Istio requires explicit configuration to enable mTLS across the mesh. Linkerd turns it on at install.
When your CISO asks for proof of encryption-in-transit for a regulatory review, "it's on by default" is a much shorter conversation. The alternative is "let me show you our PeerAuthentication policies."
mTLS alone doesn't stop data leaks at the mesh layer. It's still the cheapest baseline you can buy.
By the time Istio and Cilium graduated, the market had already started asking a different question. The conversation inside engineering orgs had moved past "which mesh."
Now teams asked whether the CNI plus our gateway had already covered the ground. That shift lined up with the adoption decline the CNCF's 2025 survey later documented.
The graduation announcement didn't cause the conversation to flip. The conversation had already flipped by the time the announcement landed.
Knowing this history, the real question for a CTO in 2026 isn't which mesh to pick. It's whether you need one at all.
The CTO Decision Tree: Keep, Swap, or Remove
Here's the framework, with three branches to walk through in order.
Keep the mesh if you genuinely need mTLS, retries, and traffic splitting across many teams. And you can't get those capabilities cheaper elsewhere. For that profile, Linkerd is the safer default.
It graduated first, ships mTLS by default, and won the one independent throughput benchmark.
Istio still wins if you need its full feature surface: advanced traffic management, WASM extensions, and multi-cluster federation. You also need a dedicated platform team to run it.
Below adequate headcount, the operational drag of Istio outpaces its benefits. The math flips against the mesh at small platform orgs.
Swap the mesh if your primary reason for adopting it was observability. Cilium's eBPF-based approach gives you L7 telemetry without the sidecar. Your CNI or service mesh interface layer often provides enough visibility.
Most teams that adopted a mesh for traffic visibility get equivalent telemetry from a CNI plus an API gateway. The cost is a fraction of running a mesh.
Remove the mesh if you can't articulate the security policy the mesh enforces that your cloud infrastructure doesn't already cover. If no one can name what the mesh does that NetworkPolicy plus gateway mTLS don't already cover, the mesh is doing decorative work.
A useful forcing function: write down the specific compliance surface the mesh enforces. If that surface is already covered elsewhere, you have your answer.
The decision gets clearer once you've seen how long the wrong call actually takes to unwind.
What an Actual Migration Looks Like
A well-scoped mesh migration (whether it's an install, a swap, or a removal) takes sustained platform engineering effort. Experienced teams land the work faster than teams that are learning mesh operations as the project progresses.
The gap is dominated by the talent shortage the CNCF survey flagged at 47%. The operational knowledge of sidecar lifecycle, control plane upgrades, and traffic shifting during a mesh swap doesn't exist internally at most orgs.
DevOps teams that try to self-source the work routinely underestimate mTLS certificate rotation, proxy memory tuning, and per-namespace policy migration.
Mesh projects that drag past a year almost always lose internal sponsorship before completion. The team that pushed for the mesh moves on. The team inheriting the project has no political capital to defend it.
That's how "remove it" becomes the rallying cry in the first place. The original decision aged out of relevance while the implementation was still in progress.
Speed alone isn't the outcome that matters. What teams look like a year after the decision is.
The Teams That Got It Right, and What They Look Like Now
Teams that kept a mesh kept it for a specific reason. They tied it to a compliance surface that had nowhere else to live. That meant mTLS for in-cluster traffic, zero trust segmentation across namespaces, and regulatory audit trails for inter-service calls.
The mesh wasn't the modern thing to run. It was the cheapest way to satisfy a board-level requirement that was already on the books.
Teams that removed a mesh usually replaced the observability gap with a CNI or eBPF-based tool like Cilium's Hubble. They moved retries into the application code, or accepted that some failure modes would surface at the service layer. The teams that succeeded at removal did it because they had already documented the actual functions the mesh performed.
They confirmed that the cost of reproducing those functions outside the mesh was lower than the cost of running the mesh.
The leading indicator for whether a mesh decision ages well isn't which mesh you picked. It's whether the team that made the decision had enough experience to recognize the trade-offs in real time.
The pattern repeats across engagements. The mesh (or the decision to skip the mesh) was made with someone who'd seen the second-year bill before. The teams that self-sourced the decision under internal pressure were the ones that ended up redoing it not long after.
What that second-year bill actually contains is rarely what the original team modeled in the first deck.
Frequently Asked Questions
Is Istio still the right choice for service mesh in 2026?
Only if you need its full feature set and have a dedicated platform team with the capacity to operate it. For most teams, Linkerd's mTLS-by-default and simpler footprint make it the safer pick. The LiveWyer benchmark put Linkerd ahead on raw throughput. The operational tax of Istio is real at small platform orgs.
When should a team remove their service mesh?
When the mesh is mainly serving observability. That can be replaced by CNI or eBPF tooling. Also when no team can articulate the security policy the mesh enforces. Or when platform engineering capacity is below the threshold to operate it safely.
What is the actual sidecar overhead in production?
The overhead compounds with fleet size. It's invisible at a handful of services and material at scale with chatty east-west traffic. The tax shows up as added latency per hop, extra memory per pod, and a control plane dependency your platform team owns.
How long does a service mesh migration take?
A scoped install, swap, or removal runs faster with experienced platform help. In-house teams without prior mesh experience face a much longer timeline, dominated by the talent gap the CNCF survey measured. Projects that drag past a year frequently lose internal sponsorship before completion.
Linkerd vs Istio: which is simpler?
Linkerd. It graduated CNCF two years before Istio and Cilium. It ships mTLS by default. It also won the one independent throughput benchmark in public discussions. Istio has a larger feature surface but pays for it in operational complexity.
The right answer for your stack depends on what the mesh does for you today, not what the brochure promised in 2021.
About the author
Mayank Singh is a software developer at Levitation Infotech, where he builds web and AI-powered applications across the company’s fintech, healthcare, and enterprise projects.
