3 ms·
I thought Kubernetes itself does service discovery and load balancing. Why would I want another layer/proxy to the involved?
by tamalsaha001 10y ago
I thought Kubernetes itself does service discovery and load balancing. Why would I want another layer/proxy to the involved?
- williamallthing 10y agoRequest-level versus connection-level load balancing. See e.g. https://blog.buoyant.io/2016/03/16/beyond-round-robin-load-balancing-for-latency/ https://blog.buoyant.io/2016/03/16/beyond-round-robin-load-b...
- deleted 10y ago[deleted]
- theptip 10y agokube-proxy (the k8s per-node service agent) is a good generic solution, but has some issues. The primary issue is that it doesn't support advanced use-cases like circuit breaking or retry budgets (it's just a set of iptables rules). Also, I believe linkerd uses IPC, which wil be quicker for intra-node communication between processes[1] (i.e. east-west communications). Not sure how linkerd does it, but it's possible to bypass the kube-proxy and directly watch the set of pod IPs that a service is selecting, so linkerd can avoid hitting the default kube-proxy if it wants to. [1]: http://bhavin.directi.com/unix-domain-sockets-vs-tcp-sockets/ http://bhavin.directi.com/unix-domain-sockets-vs-tcp-sockets...