k8s-service中iptable cluster ip实现原理

发布时间:2021-11-15 14:27:48 作者:柒染
来源:亿速云 阅读:433

本篇文章为大家展示了k8s-service中iptable cluster ip实现原理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

在这里我们主要介绍集群内的负载均衡。对于k8s集群中的服务是需要相互访问的,一般我们都会为之创建相应的service,对于集群内部的service类型我们一般设置成cluster ip。对于一个cluster ip后面会关联多个endpoints,也就是实际的pod。对于cluster ip的访问,也就是实现了对cluster ip关联的多个endpoints访问。关于cluster ip和endpoints的流量负载均衡,一般有iptable方式和ipvs方式,在以前文章里有所介绍。这里我们主要以实际例子来介绍iptable的实现方式。另外cluster ip是虚拟ip,言外之意就是这个ip没有和任何device绑定,所以当你对这个ip进行例如ping或者traceroute命令的时候是不会得到应答的。

查看部署的nginx application的service,我们可以看到:

kubectl describe service service-nginx-app -n default

k8s-service中iptable cluster ip实现原理

查看host network namespace iptable的nat表:

iptables -nvL -t nat

k8s-service中iptable cluster ip实现原理

对于PREROUTING chain中,所有的流量都走到了KUBE-SERVICES这个target中。请注意PREROUTING chain是流量到达之后的第一个入口。试想我们在pod里运行命令curl http://10.254.226.173,根据以前文章里介绍的容器内部路由表,数据包应该是这样的流动:

查看KUBE-SERVICES target:

iptables -nvL -t nat | grep KUBE-SVC

k8s-service中iptable cluster ip实现原理

在KUBE-SERVICES target中我们可以看到目标地址为cluster ip10.254.226.173的匹配target为KUBE-SVC-ETZVW7ENORYJBYB4。

查看KUBE-SVC-ETZVW7ENORYJBYB4 target:

iptables -nvL -t nat

k8s-service中iptable cluster ip实现原理

在KUBE-SVC-ETZVW7ENORYJBYB4 target中我们可以看到:

查看KUBE-SEP-L6A5J2X5SCQGCA7Z和UBE-SEP-L6A5J2X5SCQGCA7Z target:

iptables -nvL -t nat

k8s-service中iptable cluster ip实现原理

k8s-service中iptable cluster ip实现原理

在这2个target中我们可以看到:

所以综合上面的例子,对于ipable方式的k8s集群内cluster-ip类型的service总结为:

上述内容就是k8s-service中iptable cluster ip实现原理,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. mysql中cluster 一台server如何安装
  2. mysql 中怎么安装cluster

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

k8s iptable cluster ip

上一篇:k8s-service中iptable node port实现原理是什么

下一篇:使用容器的误区和场景有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》