每天5分钟玩转Kubernetes | Cluster IP底层实现

书籍来源:cloudman《每天5分钟玩转Kubernetes》

一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:每天5分钟玩转Kubernetes | 汇总_COCOgsta的博客-CSDN博客


Cluster IP是一个虚拟IP,是由Kubernetes节点上的iptables规则管理的。

可以通过iptables-save命令打印出当前节点的iptables规则,因为输出较多,这里只截取与httpd-svc Cluster IP 10.106.95.163相关的信 息,如图所示。

7beb16b7965b2eca5b5ed0c92e19bfa0.png

这两条规则的含义是:

(1)如果Cluster内的Pod(源地址来自10.244.0.0/16)要访问httpd-svc,则允许。

(2)其他源地址访问httpd-svc,跳转到规则KUBE-SVC-RL3JAE4GN7VOGDGP。KUBE-SVC-RL3JAE4GN7VOGDGP规则如图所示。

bcd1168f42f62d6637ce6121b8686b08.png

(1)1/3的概率跳转到规则KUBE-SEP-ZJDENNFOT4OXFPBZ。

(2)1/3的概率(剩下2/3的一半)跳转到规则KUBE-SEP-G4J5AUEMZM4N2VKT。

(3)1/3的概率跳转到规则KUBE-SEP-XVHRHMTO246ZGLUD。

上面三个跳转的规则如图所示。

aa66d87aea8086695141b54eb6b69473.png

b7bbc32a4ae43ea65567f50916fb5f38.png

4169b854d24213b506616e6c66573d34.png

即将请求分别转发到后端的三个Pod。通过上面的分析,我们得到结论:iptables将访问Service的流量转发到后端Pod,而且使用类似轮询的负载均衡策略。

另外,需要补充一点:Cluster的每一个节点都配置了相同的iptables规则,这样就确保了整个Cluster都能够通过Service的Cluster IP访问Service,如图所示。

d936ed8046b19d9fa83f6dd15267b408.png

猜你喜欢

转载自blog.csdn.net/guolianggsta/article/details/125054142