【k8s】Kubernetes Service的实现原理什么?

2022-05-22  本文已影响0人  Bogon

kube-proxy : 工作在用户态,效率不高

iptables: 工作在内核态,效率较高

ipvs: 本身就是为负载均衡设计

ipvs数据结构为hash表,其大小可以无限延伸

grpc是远程调用,客户端pod调用多个pod时就出现了调用谁的问题,这个问题就是负载均衡。

k8s的service是k8s提供的一个负载均衡机制,但是无法满足grpc的负载需求。

grpc为什么需要负载?

因为grpc底层是基于http2的长链接,客户端pod一旦与一个服务端pod发生tcp握手后,连接就保持住了,后续的请求就永远会进入该pod。

grpc走http2协议,加一层nginx ingress 肯定是可以负载均衡的,但是有个问题,http2长连接会导致固定到后端一个pod,这就负载不均衡了。

Kubernetes Service的实现原理什么?

Kubernetes为何不能负载gRPC?

https://www.bilibili.com/video/BV1BU4y1F7vn

上一篇下一篇

猜你喜欢

热点阅读