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