Linkerd — Commands & Recipes
Installation
# Install CLI
curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install | sh
# Pre-check
linkerd check --pre
# Install CRDs + control plane
linkerd install --crds | kubectl apply -f -
linkerd install | kubectl apply -f -
# Verify
linkerd check
Mesh a Namespace
# Inject sidecars into existing deployments
kubectl get deploy -n myapp -o yaml | linkerd inject - | kubectl apply -f -
# Or annotate namespace for auto-injection
kubectl annotate namespace myapp linkerd.io/inject=enabled
Traffic Splitting (Canary)
apiVersion: policy.linkerd.io/v1beta3
kind: HTTPRoute
metadata:
name: myapp-canary
namespace: myapp
spec:
parentRefs:
- name: myapp
kind: Service
group: core
port: 8080
rules:
- backendRefs:
- name: myapp-v1
port: 8080
weight: 90
- name: myapp-v2
port: 8080
weight: 10
Observability
# Golden metrics dashboard
linkerd viz install | kubectl apply -f -
linkerd viz dashboard &
# Per-deployment stats
linkerd viz stat deploy -n myapp
# Live traffic tap
linkerd viz tap deploy/myapp -n myapp
# Top routes
linkerd viz routes deploy/myapp -n myapp
Multi-Cluster
# Link two clusters
linkerd multicluster install | kubectl apply -f -
linkerd multicluster link --cluster-name west | kubectl --context=east apply -f -
# Export a service
kubectl label svc/myapp mirror.linkerd.io/exported=true
Sources