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原理和配置说明。