dns策略:
https://kubernetes.io/zh/docs/concepts/services-networking/dns-pod-service/

Pod 的 DNS 策略

DNS 策略可以逐个 Pod 来设定。目前 Kubernetes 支持以下特定 Pod 的 DNS 策略。 这些策略可以在 Pod 规约中的 dnsPolicy 字段设置:

  • Default“: Pod 从运行所在的节点继承名称解析配置。参考 相关讨论 获取更多信息。
  • ClusterFirst“: 与配置的集群域后缀不匹配的任何 DNS 查询(例如 “www.kubernetes.io”) 都将转发到从节点继承的上游名称服务器。集群管理员可能配置了额外的存根域和上游 DNS 服务器。 参阅相关讨论 了解在这些场景中如何处理 DNS 查询的信息。
  • ClusterFirstWithHostNet“:对于以 hostNetwork 方式运行的 Pod,应显式设置其 DNS 策略 “ClusterFirstWithHostNet“。
  • None“: 此设置允许 Pod 忽略 Kubernetes 环境中的 DNS 设置。Pod 会使用其 dnsConfig 字段 所提供的 DNS 设置。 参见 Pod 的 DNS 配置节。

nginx-ingress是hostnetwork模式, 而这种模式的pod的/etc/resolve.conf的dns是继承宿主机的(相当于dokcer run —net=host,共享宿主机网络协议栈,因此也继承了网卡dns),导致访问集群里的 api svc无法解析

所以ingress-nginx 需要使用ClusterFirstWithHostNet