Linkerd 2.20 Cuts Kubernetes Service Mesh Control Plane Memory Use by Nearly 85 Percent
Linkerd 2.20 refactors the CNCF service mesh's destination controller, cutting control plane memory use by almost 85 percent and adding rate-limit-aware load balancing.
Overview
Buoyant released Linkerd 2.20 on June 23, 2026, the latest version of the CNCF-graduated open-source service mesh, headlined by a refactor of the project’s destination controller that cuts Kubernetes control plane memory usage by close to 85 percent in some cases, according to Linkerd’s official announcement. The release also makes the mesh’s load balancing and circuit breaking aware of upstream rate limits and promotes native sidecar support to stable.
What We Know
The headline change targets the destination controller, the component that models cluster state for the mesh. Linkerd’s announcement explains that “because it needs to model the state of the cluster, the destination controller is typically responsible for the majority of Linkerd’s control plane memory usage, especially in high-scale environments,” and that in version 2.20, the team has “refactored the destination controller to optimize its internal state management, cutting memory usage in some cases by almost 85%.” Cloud Native Now reported that the change makes it “easier to pack more workloads onto existing nodes,” while noting that Buoyant, the company that maintains Linkerd, is not guaranteeing specific cost savings from the change.
The release also extends rate-limit awareness into the mesh’s traffic-handling logic. According to Linkerd’s announcement, the project has “extended the logic of both load balancing and circuit breaking to handle rate-limited services that return HTTP 429 (or gRPC RESOURCE_EXHAUSTED) responses,” so that “Linkerd can now be configured to respect these response codes, biasing traffic away from overloaded endpoints or even removing them entirely from the pool.”
Linkerd 2.20 also promotes native sidecar support to stable and makes it the default for proxy injection, a capability the project says was first introduced in version 2.15 and reached beta in 2.19, according to Linkerd’s announcement. The announcement adds that “native sidecars fix some of the long-standing annoyances of using sidecar containers in Kubernetes.” Separately, the release improves metrics for inbound traffic, with Linkerd stating it has “greatly improved the set of metrics available for the inbound side” of traffic entering a pod and brought that coverage “up to near parity with the outbound side.”
Alongside the open-source release, Buoyant also shipped Buoyant Enterprise for Linkerd 2.20, its commercial product built on the open-source project, adding features not present in the community edition. According to a Buoyant press release, the enterprise version “embeds a native trust anchor rotation operator” that can “fully automate the trust anchor rotation process, placing all the necessary guardrails in place to minimize or eliminate application downtime,” and introduces “native architectural support for Windows Virtual Machines running external to Kubernetes clusters,” which Buoyant describes as making it “the first service mesh to deliver formalized support for non-containerized Windows legacy applications.” William Morgan, Founder & CEO of Buoyant, said in the release that “Linkerd is mission-critical infrastructure for companies and systems that people around the world rely on every day.”
What We Don’t Know
Linkerd’s announcement does not specify the cluster size or workload profile under which the near-85-percent memory reduction was measured, only that the figure applies “in some cases.” Cloud Native Now’s coverage attributes the memory savings to a broader set of control-plane components beyond the destination controller, a characterization not corroborated by Linkerd’s own announcement, which names the destination controller specifically.