Lesson 03 of 7 · Modules
Linkerd architecture
How Linkerd takes a simplicity-first approach: a small control plane, a purpose-built Rust micro-proxy, mTLS on by default, installing and checking it, the trust anchor and issuer certificates you must manage, the viz extension, and how its release model works.
Simplicity first
Linkerd (a CNCF graduated project) focuses on doing the core mesh jobs with minimal configuration:
- mTLS on by default between meshed pods.
- Golden metrics for every meshed workload.
- Latency-aware load balancing, retries and timeouts.
- A small control plane and a purpose-built Rust proxy (
linkerd2-proxy) instead of a general-purpose one.
If Istio is a Swiss Army knife with a tool for everything, Linkerd is a really good pair of scissors: fewer features, but they're sharp, light and hard to use wrongly. Many teams need scissors more than the whole knife.
Architecture
| Component | Job |
|---|---|
destination |
Service discovery and routing/policy info for proxies |
identity |
Issues workload certificates (signed by the issuer certificate) |
proxy-injector |
Mutating webhook adding the proxy (and init/CNI) to pods |
linkerd2-proxy |
The data plane, one per meshed pod |
| Extensions | viz (metrics/dashboard), multicluster, jaeger |
Install
$ linkerd check --pre
$ linkerd install --crds | kubectl apply -f -
$ linkerd install | kubectl apply -f -
$ linkerd check
$ kubectl annotate namespace shop linkerd.io/inject=enabled
$ kubectl -n shop rollout restart deploy
$ linkerd viz install | kubectl apply -f - && linkerd viz check
For production, install with Helm and supply your own trust anchor and issuer certificates (generated with a tool such as step), rather than letting the CLI generate short-lived ones.
Certificates you own
trust anchor (root CA, long-lived, kept offline/secure)
└── issuer certificate (intermediate, used by the identity controller)
└── workload certificates (per proxy, short-lived, auto-rotated)
- Workload certificates rotate automatically.
- The issuer can be rotated automatically with cert-manager.
- The trust anchor must be rotated with a planned procedure before it expires (bundle old + new anchors, roll proxies, remove old). Put its expiry date in monitoring today.
Traffic features
- Retries and timeouts (configured via Gateway API
HTTPRouteannotations/filters in recent versions, or ServiceProfiles in older setups; ServiceProfiles also support retry budgets). - Traffic splitting for canaries via Gateway API
HTTPRouteweights (lesson 05). - Authorization policy resources (
Server,AuthorizationPolicy,MeshTLSAuthentication) for identity-based access.
Release model
Linkerd's open-source project publishes frequent edge releases; since 2024, stable release artifacts are distributed by Buoyant (the main maintainer company), free for smaller organisations and under a commercial subscription for larger ones. Check the current terms and choose a channel deliberately before standardising on it.
Try it: Linkerd in 15 minutes
- Install the Linkerd CLI, run
linkerd check --pre, then install CRDs and the control plane on kind. - Deploy the
emojivotodemo app (from the Linkerd docs), annotate its namespace, and restart it. - Install viz and run
linkerd viz stat deploy -n emojivoto; find the service with a low success rate. - Use
linkerd viz tapto watch the failing requests, andlinkerd viz edgesto confirm mTLS identities. - Check the issuer and trust anchor expiry (
linkerd checkwarns when they're close) and write a rotation plan.
Going deeper: running Linkerd
- Install HA mode (multiple control-plane replicas, PDBs) for production.
- Integrate the issuer with cert-manager, and alert on trust anchor expiry months ahead.
- For multi-cluster, the multicluster extension mirrors services across clusters with mTLS across gateways (or flat networks).
Recap
- Linkerd: simplicity-first mesh, Rust micro-proxy, mTLS by default, golden metrics built in.
- Control plane: destination, identity, proxy-injector; extensions like viz.
- You own the trust anchor and issuer lifecycles; automate the issuer, plan anchor rotation.
- Traffic splitting and retries via Gateway API HTTPRoute (or ServiceProfiles); check the release channel terms.
This site is a public version of my personal engineering knowledge hub. It intentionally excludes confidential company information and internal operational details.