Linkerd 2.18: Windows Support and ‘Battlescar’ Removal
Linkerd 2.18 marks the open source service mesh project’s biggest release since its change to its pricing. It now includes fixes for Linkerd’s “battlescars,” as Buoyant co-founder and CEO William Morgan characterized the new features. These include protocol declarations, GitOps-compatible multicluster support, and changes to Gateway API and Windows support.
Linkerd 2.18 is the fourth major Linkerd release since the pricing change, and the second “since we announced the ‘results’ of that change, Morgan told me.
“Buoyant has become profitable, we’ve added maintainers and momentum to the Linkerd project, and the world hasn’t ended,” Morgan said. “This is more minor but I would also argue the change was about packaging, not pricing. The open source project has never had a price point on it.”
The specific features for 2.18 is that Morgan communicated in a blog post are:

Protocol declarations: Rather than requiring the user to configure the protocols used by applications, Linkerd will automatically determine them just by looking at the data passed through the proxy, Morgan wrote. “This allows you to ‘drop in’ Linkerd without configuration and have your application continue to work,” he wrote. “In the majority of cases, protocol detection just works. But in extreme situations, it can make things more complicated.”
One particularly egregious issue is that if the cluster is under extreme load, the application may not send data in time for protocol detection to happen, Morgan wrote. “Linkerd will fall back to treating the connection as raw TCP data, and HTTP-specific features will suddenly be disabled for that connection,” he wrote.
To avoid this unpredictable behavior, Linkerd 2.18 will now optionally read the protocol for a port from the appProto field on Kubernetes Service objects, Morgan wrote. “When this field is specified, Linkerd will not perform protocol detection and instead just use the configured protocol,” he wrote.
In order to improve efficiency, Linkerd transparently upgrades HTTP/1.1 connections to HTTP/2 ones in between client and server proxies. “We make use of this to transit protocol information between proxies) but the net result is that avoiding protocol declaration for a Service is as easy as configuring the appProtocol field,” Morgan wrote.
GitOps-compatible multicluster linking: Linkerd’s multicluster capabilities allow applications to communicate between Kubernetes clusters in a way that is secure, even across the open Internet, and fully transparent to the application, Morgan wrote. “Linkerd first introduced multicluster connectivity with the release of Linkerd 2.8 in 2020, allowing adopters to enable a full range of multicluster options, including multicloud and hybrid cloud deployments. At that point in time, multicluster adoption in the Kubernetes ecosystem was largely ad-hoc, with small numbers of ‘pet’ clusters,” he wrote. “Today, multicluster adoption is significantly different since Linkerd adopters sometimes run Linkerd on hundreds or thousands of clusters, and will typically manage their infrastructure via GitOps. In Linkerd 2.18, we’ve further improved multicluster by allowing the creation of all Link resources in a declarative fashion, making it fully GitOps-compatible.”
Gateway API decoupling: “Since the release of Linkerd 2.12 in 2022, Linkerd has been leading the charge in using the Gateway API as a core configuration mechanism,” Morgan wrote. “With the 2.14 release, Linkerd became the first service mesh to achieve conformance with the Gateway API mesh profile,” he added.
“Our initial approach here was ‘batteries included’: since most adopters did not have the Gateway API types, Linkerd would bundle them by default,” Morgan wrote. “As the Gateway API itself matures and as adoption of the Gateway API spreads across more projects, this approach has started to cause friction as other projects have started installing, or requiring, specific versions of the Gateway API types.
“Linkerd 2.18 will be the last release that installs Gateway API types by default. In this release, we’ve bumped the installed versions of these types; we’ve added support for Gateway API version 1.2.1, the latest available; and we’ve improved our documentation with recommendations for how users should manage the Gateway API across Linkerd and other projects.”
Experimental Windows build: The 2.18 release ships with an experimental build of the proxy for Windows machines, Morgan noted. “This is an important first step in our goal of bringing Windows applications, whether on containers, VMs, or even bare metal machines into the Linkerd service mesh, so that we can deliver a unified layer of security and reliability across Kubernetes and non-Kubernetes environments,” Morgan told me. “Today we have that with Linux VMs, but Windows is the next frontier. Building Linkerd’s Rust microproxy on Windows is just one part of the puzzle, but we are actively working on the remaining pieces and expect to see them over the next few releases.”
Big and Small Fit
Linkerd is geared for smaller as well as larger deployments. Within this context, the other leading open source alternatives, such as Istio and Cilium are often perceived as being geared for different types of applications, particularly for large-scale deployments for Kubernetes management. “I think the factor that really distinguishes Linkerd from options such as Istio and Cilium is simplicity rather than scale of deployments,” Morgan told me. “Linkerd does work well on very large as well as very small deployments, and this release is really focused on a couple insights we’ve learned from extremely large deployments—but that’s a consequence of our focus on simplicity rather than an immediate goal.”
The Price Is Right?
Buoyant’s decision to charge organizations with 50 or more users for access to the stable releases of its open source service mesh has certainly evoked ire and anger expressed on the Xsphere and elsewhere. This reaction is understandable, given that this service mesh — stable releases and all — has been available for free for a while, and many users, including enterprises, have at least grown accustomed to it.
What Buoyant is not doing is changing the licensing scheme of Linkerd. The licensing remains under the Apache License, Version 2.0. Additionally, likely unbeknownst to many, Buoyant is not forcing users to pay for the enterprise version to access stable releases. This is because it has already released an enterprise version in 2023.
As the dust has finally settled about last year’s announcement of a new pricing system, Linkerd 2.18 was made to solve previous pain points and to offer a lot more for the free and stable release, which organizations will have to pay for that have over 50 users.
Morgan agreed that Buoyant did not change the licensing of Linkerd, which “many people seem to be confused about,” he said. However, he clarified that while it’s true that Buoyant doesn’t “force” anyone to pay for stable releases, a clarification is in order: “It is also true that the enterprise version of Linkerd was first released back in 2023, prior to the change in stable release policy,” Morgan told me. “However, today we only create stable releases for the enterprise version.”
“The work to deliver these releases is quite significant and is distinct from the work that drives the project forward with new features and capabilities,” he noted.
Moreover, “In open source, we produce ‘edge’ releases, which are production-ready and have all the latest bugfixes and security features, but which don’t have the upgrade guarantees that stable releases have. We have many community members who run these edge releases in production across a wide range of environments and help us improve Linkerd by reporting feedback, which we see as an incredibly valuable way to give back to the project,” Morgan said. “It’s been slightly over a year since we made this change and we’re very happy with the result: Linkerd adopters who want the latest and greatest features as rapidly as possible can stay on the open source edge releases, and Buoyant customers who value stability and risk management above immediate access to the latest capabilities can run Buoyant Enterprise for Linkerd stable releases.”