服務發現DNS
DNS域名解析是ACS集群內實現服務發現的方式之一。本文主要介紹ACS集群中DNS域名解析原理和DNS服務發現方案。
注意事項
如果在創建ACS集群時,未開啟任意DNS服務發現組件,容器Pod將默認使用VPC提供的DNS服務器進行域名解析。該模式下不支持Kubernetes內Service服務名的域名解析。
對于已創建的ACS集群,啟用DNS服務發現方案僅對新建的容器Pod生效,即啟用前創建的容器Pod并不會隨著方案的啟用而切換其DNS配置文件,需重新創建容器Pod來使其接入新的DNS服務發現方案。
ACS集群中DNS域名解析原理
在ACS集群創建容器Pod時,默認情況下,/etc/resolv.conf
文件的內容如下。該文件指定了DNS服務器、搜索域和一些其他參數。
# nameserver表示本容器Pod使用的DNS服務器IP地址。
nameserver 172.xx.x.xx
# search表示請求服務時需要拼接的域名后綴,當Pod處于kube-system命名空間時如下。
search kube-system.svc.cluster.local svc.cluster.local cluster.local
# 其他參數
options ndots:5
關于DNS域名解析配置文件和Pod DNSPolicy的字段含義,請參見DNS原理和配置說明。