What's Actually Happening
Linkerd is not routing traffic correctly. Requests don't follow defined traffic splits or reach intended services.
The Error You'll See
- Traffic not split between versions
- Requests failing with 503
- Timeout errors from proxy
Why This Happens
- 1.Proxy not injected
- 2.Service profile misconfigured
- 3.Traffic split issues
- 4.Service discovery problems
- 5.Certificate errors
Step 1: Check Proxy Injection
kubectl get pods -n myapp -o yaml | grep linkerd.io/proxy
linkerd check --proxyStep 2: Check Service Profile
kubectl get serviceprofile -n myapp
kubectl describe serviceprofile myapp-svc -n myappStep 3: Check Traffic Split
kubectl get trafficsplit -n myapp
kubectl describe trafficsplit myapp-split -n myappStep 4: Verify Service Labels
kubectl get svc -n myapp --show-labels
# Services must have correct labels for traffic splitStep 5: Check Linkerd Logs
linkerd logs --control-plane-component=destination
kubectl logs -n linkerd deployment/linkerd-destinationStep 6: Check Proxy Logs
kubectl logs deployment/myapp -n myapp -c linkerd-proxyStep 7: Run Linkerd Check
linkerd check
linkerd check --proxyStep 8: Check Certificate
linkerd check --proxy --wait=60s
linkerd identity -n myapp deployment/myappStep 9: Restart Proxy
kubectl rollout restart deployment/myapp -n myappStep 10: Test Traffic
linkerd viz stat -n myapp deploy/myapp
linkerd viz tap -n myapp deploy/myappRelated Issues
- [Fix Linkerd Proxy Sidecar Not Injecting](/articles/fix-linkerd-proxy-sidecar-not-injecting)
- [Fix Istio Traffic Not Routing](/articles/fix-istio-traffic-not-routing)