400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

k8s-service中iptableclusterip实现原理

本篇文章为大家展示了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实现原理,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


分享名称:k8s-service中iptableclusterip实现原理
当前URL:http://mbwzsj.com/article/gsesio.html

其他资讯

让你的专属顾问为你服务