关于k8s service

北城余情 提交于 2021-01-07 09:06:38

1、service类型
service主要类型包括clusterIP(headless)、nodeport、LB。
clusterip:集群内部可以访问的固定虚机IP地址;
headless:是不分配cluster IP地址的cluster服务类型,可通过DNS访问cluster,也可通过指定podname.clustername.<namespace name>.svc.cluster.local,访问指定的pod;
nodeport:将service的port射到节点的port,外部可通过node ip + port的方式直接访问service;
LB:负载均衡器后端服务器为集群各节点IP+nodePort;




2、服务发现
定义服务的时候,通过service的selector指定pods,并根据pods的IP创建相应的endpoints,endpoints controller监听watch service以及pod的变化,维护endpoint的详细;kube-proxy根据service和endpoint来维护本地的路由规则,当endpoint发生变化,即service及其关联的pod发生变化,kube-proxy都会在每个节点上更新iptables;

3、kube-proxy实现模式
当前支持的代理模式主要是ipvs、iptables;
iptables:以内核iptables的NAT方式实现service的负载均衡;由于iptables新增规则需要整体flush,另外规则串行匹配,造成时间和内存的消耗;
ipvs:通过一定的规则进行hash映射,改善iptables的消耗问题;


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!