在Kubernetes中,为应用配置Pod的DNS策略可以控制Pod如何访问DNS服务,以及如何处理DNS解析,确保Pod能够找到其他服务并与服务通信。本文介绍在创建应用时,如何为应用设置Pod的DNS策略、DNS配置和域名别名。
操作步骤
登录EDAS控制台,在左侧导航栏,单击 ,在顶部菜单栏选择地域并在页面上方选择所属微服务空间,然后在应用列表页面左上角,单击创建应用。
在应用基本信息页签,完成相关配置后,单击下一步。
在应用配置页签,设置应用的环境信息、基本信息、部署方式和资源参数,设置完成后单击下一步。
在应用高级设置页签展开DNS配置,并根据您的业务需求配置DNS,然后在页面最下方单击下一步。
配置项
描述
DNS策略(dnsPolicy)
目前支持通过DNS策略(dnsPolicy)字段为每个Pod配置不同的DNS策略。
ClusterFirst:通过CoreDNS做域名解析,Pod内/etc/resolv.conf配置的DNS服务地址是集群DNS服务的kube-dns地址。该策略是集群工作负载的默认策略。
ClusterFirstWithHostNet:结合hostNetwork网络模式使用,使Pod既能解析Kubernetes内部服务的域名,也能解析外部域名。
Default:Pod直接继承集群节点的域名解析配置。即在集群中直接使用ECS的/etc/resolv.conf文件(文件内配置的是阿里云DNS服务)。
None:忽略集群DNS策略,需要您提供DNS配置(dnsConfig)字段来指定DNS配置信息。
DNS配置(dnsConfig)
DNS配置(dnsConfig)中的参数说明如下:
nameserver:将用作Pod的DNS服务器的IP地址列表。最多可以指定3个IP地址。
说明当Pod的DNS策略(dnsPolicy)设置为None时,列表必须至少包含一个IP地址,否则此属性是可选的。列出的DNS的IP列表将合并到基于DNS策略(dnsPolicy)生成的域名解析文件的nameserver字段中,并删除重复的地址。
searches:Pod中主机名查找的DNS搜索域列表。此属性是可选的,指定后,提供的列表将合并到从所选DNS策略(dnsPolicy)生成的基本搜索域名中,并删除重复的域名。Kubernetes最多允许6个搜索域。
options:可选的对象列表,其中每个对象可以具有名称属性(必需)和变量值属性(可选)。此属性中的内容将合并到从指定的DNS策略(dnsPolicy)生成的选项中,并删除重复的条目。
域名别名(hostAliases)
通过hostAliases允许为Pod中的hosts文件增加本地域名解析条目。
IP地址:主机列表被解析到的目标IP地址。
主机名:将指定的主机解析到IP地址,多个主机名通过英文半角逗号(,)分隔。
完成设置后单击创建应用。
完成设置后单击创建应用,然后在应用创建完成页签,单击确定创建应用。
在应用变更预检确认对话框,单击开始预检。
在应用变更预检确认的下一页,确认预检项和预检结果,单击继续。
可选:如您有更改以上预检项,请单击重新检测。
应用创建可能需要几分钟,创建过程中,可以通过查看变更记录跟踪应用的创建流程。创建完成后,返回应用总览页面,查看实例Pod的运行状态。若运行状态为运行中,说明应用发布成功。单击Pod的运行状态可以查看应用实例的工作负载(Deployment)、容器组(Pod)和高级配置信息。
验证结果
在应用总览页面,在基本信息区域,单击运行状态右侧的点击查看。
在容器组(Pod)区域,选择需要验证的Pod,单击操作列的终端。
在终端页面,执行以下命令,查看DNS设置是否已被写入到
/etc/resolv.conf
文件中。cat /etc/resolv.conf
相关文档
关于创建或部署应用过程中的其他配置项,请参见使用默认应用来源创建K8s应用。
如需了解Kubernetes为Service和Pod创建的DNS记录,请参见Service与Pod的DNS。