What is linkerd?
linkerd is an out-of-process network Stack for microservices. It functions as a transparent RPC proxy, handling everything needed to make inter-service RPC safe and sane–including load-balancing, service discovery, instrumentation, and routing.
Linkerd is a service mesh for Kubernetes. It makes running services easier and safer by giving you runtime debugging, observability, reliability, and security—all without requiring any changes to your code.
For a brief introduction to the service mesh model, we recommend reading The Service Mesh: What Every Software Engineer Needs to Know about the World’s Most Over-Hyped Technology.
Linkerd has three basic components: a UI, a data plane, and a control plane. You run Linkerd by:
- Installing the CLI on your local system;
- Installing the control plane into your cluster;
- Adding your services to Linkerd’s data plane.
Once a service is running with Linkerd, you can use Linkerd’s UI to inspect and manipulate it.
How it works
Linkerd works by installing a set of ultralight, transparent proxies next to each service instance. These proxies automatically handle all traffic to and from the service. Because they’re transparent, these proxies act as highly instrumented out-of-process network stacks, sending telemetry to, and receiving control signals from, the control plane. This design allows Linkerd to measure and manipulate traffic to and from your service without introducing excessive latency.
In order to be as small, lightweight, and safe as possible, Linkerd’s proxies are written in Rust and specialized for Linkerd. You can learn more about the proxies in the Linkerd proxy repo.