A little question


#1

k8s service support load balance and communication between pods , so why do we still need linkerd?


#2

Hi @terryshi96 thats a good question. Linkerd primarily uses services for service discovery. What this means is that Linkerd will use the k8s API to query the set of k8s Endpoints associated with a particular service and then load balance traffic amongst those Endpoints. Essentially, Linkerd is sending traffic to pod IPs themselves instead of service IPs.

The k8s service resource use round robin load balancing while Linkerd provide even more load balancing techniques. You can check that out here.

I hope that was helpful. :slight_smile:


#3

There’s a huge difference between Linkerd’s request-level LB vs K8s’s connection-level LB, not to mention all the other stuff that Linkerd adds (retries, timeouts, request telemetry, etc)