一、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

