
在默认情况下,系统会自动为pod配置好域名服务器等DNS参数,此外k8s也提供在pod定义中有用户自定义DNS相关配置的方法。这可以通过在pod定义中设置dnsConfig字段进行DNS相关配置,该字段时可选字段。在dnsPolicy为任意策略时都可以设置,但是当dnsPolicy=“None”时必须设置。该特性在1.9版本中被提出,在1.10版本时达到beta阶段并被默认启用,1.14版本达到stable阶段
自定义DNS可以设置以下内容:
apiVersion: v1
kind: Pod
metadata:
name: tomcat
spec:
containers:
- name: tomcat
image: 192.168.1.6:80/dev/tomcat
ports:
- containerPort: 8080
dnsPolicy: "None"
dnsConfig:
nameservers:
- 223.5.5.5
searches:
- nsl.svc.cluster.local
options:
- name: ndots
value: "2"
- name: edns0
pod创建成功后,容器内DNS配置文件/etc/resolv.conf 的内容自动被系统设置成:
[root@f-master1 ~]# kubectl exec -it tomcat -- bash root@tomcat:/usr/local/tomcat# cat /etc/resolv.conf nameserver 223.5.5.5 search nsl.svc.cluster.local options ndots:2 edns0