推荐阅读:
https://blog.csdn.net/m0_57223716/article/details/125167416
1 userspace模式 :
用户空间和内核空间损耗
2 iptables 模式 :
执行过程:
当请求访问service时,iptables在prerouting阶段,将讲求jump到KUBE-SERVICES,
在KUBE-SERVICES 中匹配到上面的第一条准则,继续jump到KUBE-SVC-XXXXXXXXXXXXXXXX,
根据这条准则jump到KUBE-SEP-XXXXXXXXXXXXXXXX,
在KUBE-SEP-XXXXXXXXXXXXXXXX规则中经过DNAT动做,访问真正的pod地址10.1.0.8:8080。
> 在这种逻辑下,数据转发都在系统内核层面做,提升了性能,并且即便kube-proxy不工作了,已经创建好的服务还能正常工作 。但是在这种模式下,如果选中的第一个pod不能响应,请求就会失败,不能像userspace模式,请求失败后kube-proxy还能对其他endpoint进行重试 。
这就要求我们的应用(pod)要提供readiness probes功能,来验证后端服务是否能正常提供服务 ,kube-proxy只会将readiness probes测试通过的pod写入到iptables规则中,以此来避免将请求转发到不正常的后端服务中。
3 ipvs模式
详情参考原文:
https://blog.csdn.net/m0_57223716/article/details/125167416
二 基础概念
Service是k8s中资源的一种,也是k8s能够实现减少运维工作量,甚至免运维的关键点,我们公司的运维都要把服务搭在我们集群里,接触过的人应该都能体会到其方便之处。Service能将pod的变化屏蔽在集群内部,同时提供负载均衡的能力,自动将请求流量分布到后端的pod,这一功能的实现靠的就是kube-proxy的流量代理,一共有三种模式,userspace、iptables以及ipvs。
————————————————
版权声明:本文为CSDN博主「u013374645」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013374645/article/details/102944579
此文章已经VIP无法查看:
推荐 阅读:
https://www.cnblogs.com/gaoyukun/articles/17156399.html