Kubernetes网络一年发展动态与未来趋势(7)
来源:名资汇网
2018-09-07 19:09:17
K8S Service的定义如下所示:
其中,spec.ClusterIP就是Service的访问IP,俗称虚IP,spec.ports[].port是Service的访问端口,而与之对应的spec.ports[].targetPort是后端Pod的端口,K8S内部会自动做一次映射。
K8S Endpoints的定义如下所示:
其中,subsets[].addresses[].ip是后端Pod的IP,subsets[].ports是后端Pod的端口,与Service的targetPort对应。
下面我们来看下K8S Service的工作原理。
如上图所示,当用户创建Service和对应后端Pod时,Endpoints Controller会观察Pod的状态变化,当Pod处于Running且Ready状态时,Endpoints Controller会生成Endpoints对象。运行在每个节点上的Kube-proxy会观察Service和Endpoints的更新,并调用其load balancer在主机上模块刷新转发规则。当前主流的load balancer实现有iptables和IPVS,iptables因为扩展性和性能不好,越来越多的厂商正开始使用IPVS模式。