摘要:自定义从开始,集群管理员可以通过为提供的来指定自定义存根域和上游。例如,下面的配置插入一个多带带的存根域和两个上游。使用存根域后缀例如的名称将被发送到配置的自定义解析器。
许多用户想将现有的域名 zones 集成到其 Kubernetes DNS 命名空间中。例如,混合云用户可能希望解决集群内部的“.corp”域地址问题。其他用户可能是有由非 Kubernetes 服务发现系统的 zone(如 Consul)问题。在 Kubernetes 1.6中,kube-dns 增加了对可配置的专用 DNS zones(通常称为“stub domains”)和外部上游 DNS 名称服务器的支持。在这篇博文中,我们将介绍如何配置和使用此功能。
1.默认查找流程
Kubernetes 目前支持两种 DNS 策略:
”Default”和”ClusteFirst”。
如果 dnsPolicy 的 Flag 没有特别指明,则默认使用”ClusterFirst”。
如果dnsPolicy设置为“Default”,则名称解析配置将从pod运行的节点继承。
如果 dnsPolicy 设置为“ClusterFirst”,则 DNS 查询将被发送到 kube-dns 服务。 基于 cluster domaim 后缀(上述示例中以.cluster.local结尾的地址)的域查询将由 kube-dns 服务应答。 所有其他查询(例如www.kubernetes.io)将被转发到从节点继承的上游 NS。
在此之前,通常使用自定义解析器替换上游 DNS 来引入存根域。 然而,这会导致自定义解析器本身成为 DNS 解析的关键路径,其中可扩展性和可用性的问题可能导致集群丢失 DNS 功能。 现在,允许用户引入自定义解析而不占用整个解析路径。
2.自定义 DNS Flow
从 Kubernetes 1.6开始,集群管理员可以通过为kube-dns提供的 ConfigMap 来指定自定义存根域和上游 NS。 例如,下面的配置插入一个多带带的存根域和两个上游 NS。 如下所示,以“.acme.local”为后缀的DNS请求将被转发到监听在 1.2.3.4 上的 DNS 服务来处理。此外, Google 公共 DNS 将提供上游查询。 有关数据格式的一些说明,请参阅本节末尾的 ConfigMap 配置说明。
下图显示了上述配置中指定的 DNS 查询流程。
将 dnsPolicy 设置为“ClusterFirst”后,首先将 DNS 查询发送到 kube-dn s中的 DNS 缓存层。 从这里,请求的后缀被检查,然后转发到相应的 DNS 。 在这种情况下,具有集群后缀(例如“.cluster.local”)的名称将发送到 kube-dns 。 使用存根域后缀(例如“.acme.local”)的名称将被发送到配置的自定义解析器。 最后,与这些后缀不匹配的请求将转发到上游 DNS 。
以下是一些域名示例以及查询这些域名的目标服务器:
3.ConfigMap配置注意事项
stubDomains(可选)
格式:以 DNS 后缀(如“acme.local”)为键,DNS IP 数组为值的 JSON 映射。
注意:目标名称服务器本身可能是 Kubernetes 服务。 例如,您可以运行自己的 dnsmasq 副本将自定义 DNS 名称导出到 ClusterDNS 命名空间中。
upstreamNameservers(可选)
格式: DNS I P的 JSON 数组。
注意:如果指定,那么指定的值将替代默认从节点的/etc/resolv.conf中获取的名称服务器
限制:最多可以指定三个上游名称服务器
示例1:添加一个Consul DNS 存根域
在此示例中,用户具有希望与 kube-dns 集成的 Consul DNS 服务发现系统。
Consul Domain 服务器位于10.150.0.1,所有 consul 均以后缀“.consul.local”命名。
要配置 Kubernetes ,集群管理员只需创建一个 ConfigMap 对象,如下所示。 注意:在此示例中,集群管理员不希望覆盖节点的上游 NS ,因此他们不需要指定可选的 upstreamNameservers 字段。
示例2:替换上游 NS
在此示例中,集群管理员希望明确强制所有非集群的 DNS 查询通过运行 在 172.16.0.1 上的他们自己的 NS 来完成。这很容易完成,他们只需要使用指定所需名称 服务器的 upstreamNameservers 字段创建一个 ConfigMap。
时速云翻译,转载请注明出处!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/32549.html
摘要:我们很高兴地宣布,在中,增加了对可配置的私有区域通常称为存根域和外部上游名称服务器的支持。例如,下面的配置插入单个存根域和两个上游名称服务器。具有存根域后缀的名称例如将被发送到配置的自定义解析程序。 许多用户他们想要集成domain name zones(现有域名区域)到Kubernetes DNS 命名空间。例如,混合云用户可能希望在群集内解析其内部.corp域地址。其他用户可能具有...
摘要:我们很高兴地宣布,在中,增加了对可配置的私有区域通常称为存根域和外部上游名称服务器的支持。例如,下面的配置插入单个存根域和两个上游名称服务器。具有存根域后缀的名称例如将被发送到配置的自定义解析程序。 许多用户他们想要集成domain name zones(现有域名区域)到Kubernetes DNS 命名空间。例如,混合云用户可能希望在群集内解析其内部.corp域地址。其他用户可能具有...
摘要:云厂商托管服务的域名解析注意事项使用云厂家提供托管式,的域名解析参数,通过界面创建的话,可能厂商界面没有开放配置,采用了一些默认值,在使用时候,需要了解清楚厂商提供的默认配置,否则会存在问题。原文链接使用云厂商托管时容器域名解析注意事项 云厂商托管 Kubernetes 服务的 Pod 域名解析注意事项 使用云厂家提供托管式Kubernetes,Pod的域名解析参数,通过界面创建Pod...
摘要:年正在柏林盛大举行,来自等多个开源云原生社区的领先技术专家正汇聚一堂,以进一步推动云原生计算的教育和发展。例如,你还需要诸如负载均衡器和的服务来运行应用程序。负载均衡器可以进行高级定制,以满足用户的各类需求。 想要在生产环境中成功部署容器,你需要的不仅仅是容器编排。 2017年CloudNativeCon+KubeCon Europe正在柏林盛大举行,来自Fluented、Kubern...
摘要:年正在柏林盛大举行,来自等多个开源云原生社区的领先技术专家正汇聚一堂,以进一步推动云原生计算的教育和发展。例如,你还需要诸如负载均衡器和的服务来运行应用程序。负载均衡器可以进行高级定制,以满足用户的各类需求。 想要在生产环境中成功部署容器,你需要的不仅仅是容器编排。 2017年CloudNativeCon+KubeCon Europe正在柏林盛大举行,来自Fluented、Kubern...
阅读 2980·2021-10-27 14:15
阅读 2956·2021-09-07 10:18
阅读 1297·2019-08-30 15:53
阅读 1546·2019-08-26 18:18
阅读 3355·2019-08-26 12:15
阅读 3432·2019-08-26 10:43
阅读 612·2019-08-23 16:43
阅读 2172·2019-08-23 15:27