Windows containers

Buoyant Enterprise for Linkerd supports Windows Kubernetes workloads. These workloads can be meshed normally and benefit from the full Linkerd feature set.

Meshing Windows workloads with Linkerd has some requirements above and beyond meshing Linux workloads.

Maturity

Windows support for Linux is currently in beta. This feature has primarily been tested on Azure AKS clusters.

Requirement: Hybrid cluster

The Linkerd control plane must run on Linux nodes. Thus, meshing Windows workloads requires a hybrid cluster comprising both Linux and Windows nodes.

Requirement: Windows CNI plugin

In order for Linkerd to automatically route traffic to and from Windows pods through the data plane proxy in those pods, it requires a CNI plugin. This plugin must be installed prior to meshing workloads on these nodes.

(Note that while a corresponding CNI plugin is available for Linux nodes, it is not required. Linux nodes without the CNI plugin will use init containers.)

Enabling Windows support

Once the Windows CNI plugin has been installed, there are two annotations that must be set to mesh a Windows workload:

  1. The nodeSelector of the workload must be set to kubernetes.io/os: windows. (Alternatively, you can set the value of the linkerd.io/inject annotation to windows.)

  2. The config.linkerd.io/proxy-image annotation must be set to ghcr.io/buoyantio/proxy-win.

With these annotations in place, the Windows workloads should be automatically meshed upon pod creation.

Learning more