K8S 笔记 - Pod 的 DNS 策略中的“坑”

Pod 的 DNS 策略有如下几个:

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

注意,这里有个坑可能会搞错:

乍一看大家可能都容易认为 Default 是默认值。但是这里 `Default 不是默认值`!!!`默认值是 ClusterFirst` !!!即 如果未明确指定 dnsPolicy,则使用 "ClusterFirst"。

关于这一点的说明可以参照官网:https://kubernetes.io/zh-cn/d...
image.png

如果害怕记错,也可以这么去理解:

通常来说对于默认配置,一般不需要使用显示使用“Default”字样来注明,而是使用一个“见文知意”词然后说明它就是默认配置并且实现了怎样的默认功能即可。而一旦显示使用“Default”字样,就要特别小心它可能不是我们下意识认为的“默认配置”。
同时,针对 dnsPolicy 的 default 策略该怎样理解记忆呢?也简单。设置为 default,就说明 Pod 不具备明确的 DNS 配置。没有那咋办呢?继承呗!咋继承?子承父业呗!即 `Pod 运行在哪个宿主机上,就使用哪个宿主机的 DNS 来完成解析`。

你可能感兴趣的:(K8S 笔记 - Pod 的 DNS 策略中的“坑”)