services,kube-proxy,endpoints关系

1. service

用来为一组相同功能的pod提供一个统一的访问入口,生成一个虚拟ip,用来负载均衡到后边的多个pod。

2、endpoints

表示后端pod节点,包含了后端pod的IP与Port, 这个不是创建完pod以后自动生成的,而是在创建service之后自动生成或是手动创建的,至于自动生成或是手动创建的endpoint是不是正确的对应了pod的ip与port,这就跟pod没关系了。

3、kube-proxy

通过获取service与endpoints还有namespace的信息,来自动生成负载均衡的规则。
注意了,service与endpoint还有namespace只是提供信息, 实际工作的是kube-proxy, 它通过生成iptables规则或是ipvs规则来实现负载均衡。来个例子:

 

 

上面TCP和UDP后面的ip都是services的虚拟ip, 作为负载均衡的入口ip。
TCP和UDP下面的都是endpoints。
这里一共4个ipvs的入口规则。services有两个。

总结:

做个比喻就是, service的ip是桥头,endpoints的ip是桥尾, pod是过桥以后的地点(也可以说endpoints是pod的大门), kube-proxy是造桥的。 。

posted @ 2022-07-27 17:03  滴滴滴  阅读(284)  评论(0编辑  收藏  举报