kubernetes可以在pod级别通过 dnspolicy字段设置DNS策略。目前支持的DNS策略如下:
- Default: 继承pod所在宿主机的域名解析设置。
- ClusterFirst: 将优先使用kubernetes环境的dns服务(如coreDNS提供的域名解析服务),将无法解析的域名转发到系统配置的上游DNS服务器。
- ClusterFirstWithHostNet: 适用与以hostNetwork模式运行的pod。
- None: 忽略集群的DNS配置,需要手工通过dnsConfig自定义DNS配置。这个选项在1.9版本中开始引入,到1.10版本时升级为Beta,到1.14版本时达到稳定版本。
案例:
使用hostNetwork的pod,其dnsPolicy设置为“ClusterFirstWithHostNet”
apiVersion: v1
kind: pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx
hostNetwork: true #使用主机网络
dnsPolicy: ClusterFirstWithHostNet #设置dns策略