K8S headless service服务详解


一、headless和ClusterIP的区别

CoreDNS的作用:在K8S里,我们想要通过name来访问服务的方式就是在Deployment上面添加一层Service,这样我们就可以通过Service name来访问服务了,那其中的原理就是和CoreDNS有关,它将Service name解析成Cluster IP,

这样我们访问Cluster IP的时候就通过Cluster IP作负载均衡,把流量分布到各个POD上面

K8s中资源的全局FQDN格式:
  Service_NAME.NameSpace_NAME.Domain.LTD.
  Domain.LTD.=svc.cluster.local.     #这是默认k8s集群的域名。

1、clusterip举例

ClusterIP的原理:一个 Service可能对应多个 EndPoint(Pod)client访问的是 Cluster IP,通过 iptables规则转到 Real Server,从而达到负载均衡的效果

 

备注: 从上面的结果中我们可以看到虽然Service有2个endpoint,但是dns查询时只会返回Service的地址。

           具体client访问的是哪个Real Server,是由iptables来决定的

2、headless举例

 

 解释:dns查询会如实的返回2个真实的endpoint

headless使用场景

第一种:自主选择权,有时候client想自己来决定使用哪个Real Server,可以通过查询DNS来获取Real Server的信息。

第二种:Headless Service的对应的每一个Endpoints,即每一个Pod,都会有对应的DNS域名;这样Pod之间就能互相访问,集群也能单独访问pod


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM