Overview
Linkerd is a service sidecar and service mesh for Kubernetes and otherframeworks. It makes running your service easier and safer by giving youruntime debugging, observability, reliability, and security–all withoutrequiring any changes to your code.
Linkerd has three basic components: a UI (both command-line and web-based), adata plane, and a control plane. You run Linkerd by installing the CLI onyour local system, then by using the CLI to install the control plane into yourcluster, and finally by adding Linkerd’s data plane to each service you want torun Linkerd on. (See Adding Your Service for more.)
Once a service is running with Linkerd, you can use Linkerd’s UI to inspect andmanipulate it.
You can get started in minutes!
Architecture
Let’s take each of Linkerd’s components in turn.
Linkerd’s UI is comprised of a CLI (helpfully called linkerd
) and a web UI.The CLI runs on your local machine; the web UI is hosted by the control plane.
The Linkerd control plane is composed of a number of services that run on yourcluster and drive the behavior of the data plane. These services accomplishvarious things–aggregating telemetry data, providing a user-facing API,providing control data to the data plane proxies, etc. By default, they run in adedicated linkerd
namespace.
Finally, Linkerd’s data plane is comprised of ultralight, transparent proxiesthat are deployed in front of a service. These proxies automatically handle alltraffic to and from the service. Because they’re transparent, these proxies actas highly instrumented out-of-process network stacks, sending telemetry to, andreceiving control signals from, a control plane. This design allows Linkerd tomeasure and manipulate traffic to and from your service without introducingexcessive latency.
You can check out the architecture for moredetails on the components, what they do and how it all fits together.
Using Linkerd
To use Linkerd, you use the Linkerd CLI and the web UI. The CLI and the web UIdrive the control plane via its API, and the control plane in turn drives thebehavior of the data plane.
(The control plane API is designed to be generic enough that other tooling canbe built on top of it. For example, you may wish to additionally drive the APIfrom a CI/CD system.)
A brief overview of the CLI’s functionality can be seen by running linkerd —help
.