kube-proxy
kube-proxy很可能是k8s网络研究中诺曼底,即把kube-proxy给搞明白之后,整个k8s的网络系统都是可以拿下来的。
kube-proxy是为了从api-server上拿到所有的网络信息,然后在单机上通过iptables的方式去把让网络路由生效;具体是什么信息呢?
首先我们在单机上配置了一个service,这个service的名字叫service_demo,这个service demo:serivce_ns_demo.service_demo.svc这个demo的cluster IP是10.1.1.119:80后面挂了三个pod,分别是:
10.110.125.211:3449
10.110.125.212:3449
10.110.125.213:3449
所以每台机器上就都要有一个配置了:
首先是从dns上拿到了所有的域从service_ns_demo.service_demo.svc访问这个域名,然后core_dns返回来的地址是10.1.1.119:80,但是单机上这个时候,就要把这个cluster ip重定向到10.110.125.211/212/213上的任意一台机器上去。这些重定向的工作就是kube-proxy做的,他要做的的事情,就是把cluster ip转化成最终的ip地址。
见 zhuanlan.zhihu.com/p/337860843
这个专栏和上面的分析完全一致