Kubernetes1.6中配置私有 DNS 区域以及上级域名服务

简介: 很多用户都有自己的域名区域,并且希望能够集成到 Kubernetes DNS 的命名空间去。例如混合云用户可能希望能在集群内解析他们内部的 “.corp” 。其他用户用户可能有一个受非 Kubernetes 管理的服务发现系统(例如 Consul)。

很多用户都有自己的域名区域,并且希望能够集成到 Kubernetes DNS 的命名空间去。例如混合云 用户可能希望能在集群内解析他们内部的 “.corp” 。其他用户用户可能有一个受非 Kubernetes 管理的服务发现系统(例如 Consul)。我们在 Kubernetes 1.6 中推出了新功能,可配置私有 DNS 区域(通常称为存根域)以及外部的上级域名服务,本文将会讲解如何使用这一功能。

Kubernetes 目前在 Pod 定义中支持两个 DNS 策略:DefaultClusterFirstdnsPolicy缺省为ClusterFirst

  • 如果dnsPolicy设置为Default,那么域名解析配置会从 Pod 所在节点继承而来。注意,本文所述功能在dnsPolicy设置为Default时无效。
  • 如果dnsPolicy设置为ClusterFirst,DNS 查询会被发送到 kube-dns 服务。kube-dns 服务负责相应以集群域名为后缀(例如.cluster.local)的查询。其他的域名查询(例如 www.kubernetes.io )会被转发给来自节点定义的上级域名服务器。

在这一功能推出之前,通常需要利用替换上级 DNS 为自定义解析的方式来完成存根域查询。然而这就使得这个自定义域名解析器成为 DNS 解析过程中的一个高风险因素。本功能让用户能够无需对整个 DNS 路径进行改造就完成自定义解析过程。

自定义 DNS 流程

从 Kubernetes 1.6 开始,集群管理员能够利用 ConfigMap 指定自定义的存根域以及上级 NameServer。下文的配置包含一个存根域和两个上级域名服务器。对域名后缀为.aceme.local的查询会被发送到地址为 1.2.3.4 的 DNS 服务。另外会把 Google 公共 DNS 作为上级服务器。注意本节末尾对 ConfigMap 中的数据格式进行的解释。

apiVersion: v1
kind: ConfigMap
metadata:
 name: kube-dns
 namespace: kube-system
data:
 stubDomains: | {"acme.local": ["1.2.3.4"]}
 upstreamNameservers: | ["8.8.8.8", "8.8.4.4"]

下图显示了配置中所指示的 DNS 查询过程。当dnsPolicy设置为ClusterFirst时,DNS 查询首先被发送到 kube-dns 的 DNS 缓存层。从这里开始检查域名后缀,然后发送到指定的 DNS。在本例中,集群后缀的域名(.cluster.local),被发送到 kube-dns,最后不符合上面后缀的其他查询被转发到上级 DNS 去进行解析。

下文表格用来说明域名解析的过程:

域名 解析服务
kubernetes.default.svc.cluster.local kube-dns
foo.acme.local 自定义 DNS(1.2.3.4)
widget.com 上级 DNS(8.8.8.8 和 8.8.4.4)中的一个

ConfigMap 配置说明

  • stubDomains (可选)
    • 格式:一个 JSON 编码的 Map 格式,其 Key 为 DNS 后缀(也就是acme.local),值是一个 JSON 数组,代表一组 DNS IP。
    • 注意:目标域名服务器也可以是 Kuernetes 服务。例如可以用 dnsmasq 把自定义 DNS 导出到 ClusterDNS 的命名空间中。
  • upstreamNameservers
    • 格式:一个 DNS IP 组成的 JSON 数组。
    • 注意:如果指定了这个值,那么从节点的 /etc/resolv.conf 继承过来的值就会被覆盖。
    • 限制:最多可以指定三个。

例 1:添加一个 Consul DNS 存根域

这个例子中,用户希望把 Consul DNS 服务集成到 kube-dns。Consul 服务位于10.150.0.1,所有的 consul 命名后缀都是.consul.local。Kubernetes 管理员简单的创建一个ConfigMap对象就可以完成。注意:本例中管理员不想覆盖节点的上级 DNS 定义,所以不需要指定upstreamNameservers

apiVersion: v1
kind: ConfigMap
metadata:
 name: kube-dns
 namespace: kube-system
data:
 stubDomains: | {"consul.local": "10.150.0.1"}

例 2:替换上级 Nameserver

这个例子中,集群管理员希望所有的集群外 DNS 查询由172.16.0.1的服务来完成,同样的用一个 ConfigMap 完成:

apiVersion: v1
kind: ConfigMap
metadata:
 name: kube-dns
 namespace: kube-system
data:
 upstreamNameservers: | ["172.16.0.1"]
本文转自中文社区- Kubernetes1.6中配置私有 DNS 区域以及上级域名服务
相关文章
|
10小时前
|
域名解析 监控 网络协议
【域名解析 DNS 专栏】DNS 域名抢注与预防:保护品牌域名资产
【5月更文挑战第28天】DNS域名抢注危害企业品牌形象和资产,可能导致消费者误入错误网站、声誉受损及商业机会流失。预防措施包括:提前注册相关域名、建立监控机制和加强品牌保护意识。使用代码监测域名可用性,或借助专业服务,可更有效地保护域名资产。重视域名管理,提高网络安全意识,以应对网络环境挑战。
|
1天前
|
域名解析 编解码 负载均衡
【域名解析DNS专栏】域名解析中的EDNS扩展:提升DNS协议灵活性
【5月更文挑战第27天】EDNS(Extension Mechanisms for DNS)是为了解决传统DNS协议在复杂网络环境下的灵活性和扩展性问题而诞生的技术。它允许在DNS请求和响应中添加额外选项,提高查询效率,支持更大数据范围,增强安全性,并实现负载均衡和故障转移。通过在DNS消息中包含EDNS部分,客户端和服务器能交换更多信息,实现更复杂的逻辑。EDNS的使用示例代码展示了如何在Python中创建和处理EDNS选项。随着技术进步,EDNS将在域名解析领域扮演更重要角色。
|
1天前
|
域名解析 负载均衡 网络协议
【域名解析DNS专栏】DNS解析中的Anycast技术:原理与优势
【5月更文挑战第27天】Anycast技术是解决DNS解析高效、稳定和安全问题的关键。它将一个IP地址分配给多地服务器,客户端请求自动路由至最近的低负载服务器,减少延迟,提高解析速度。此外,Anycast实现负载均衡,缓解DDoS攻击,并确保高可用性。通过遍历Anycast服务器选择最低延迟者进行DNS解析,实现网络性能优化。随着技术发展,Anycast在DNS解析中的应用将更加广泛。
|
1天前
|
域名解析 监控 负载均衡
【域名解析DNS专栏】智能DNS解析:自动选择最快服务器的奥秘
【5月更文挑战第27天】智能DNS解析是动态根据用户网络环境和服务器负载,选择最佳服务器的技术,提升用户体验。它通过实时监控服务器负载、网络延迟,运用负载均衡算法、地理位置识别和实时测试,自动选择最快服务器。伪代码展示了其基本工作流程,包括获取用户位置、计算服务器权重并选择最佳服务器进行域名解析。智能DNS解析优化了网络服务的稳定性和效率。
|
2天前
|
域名解析 网络协议 Ubuntu
【域名解析DNS专栏】搭建私有DNS服务器:从BIND到CoreDNS的选择
【5月更文挑战第26天】本文对比了两种流行的DNS服务器软件BIND和CoreDNS。BIND以其稳定性及丰富功能著称,广泛兼容各类平台,适合复杂环境;CoreDNS则以其高性能、模块化设计和易用性脱颖而出。根据需求、资源和技术水平,用户可选择适合自己的DNS服务器。安装示例包括BIND在Ubuntu上的apt安装及基本配置,以及CoreDNS的snap安装和YAML配置。
|
2天前
|
域名解析 网络协议 安全
【域名解析DNS专栏】DNS-over-TLS与DNS-over-HTTPS:安全升级新标准
【5月更文挑战第26天】随着网络技术的发展,DNS协议面临安全挑战,DNS-over-TLS (DoT) 和 DNS-over-HTTPS (DoH) 作为解决方案出现,旨在通过加密增强隐私和安全。DoT使用TLS封装DNS查询,防止流量被窥探或篡改;DoH则利用HTTPS隐藏DNS查询。实施DoT需在客户端和服务器间建立TLS连接,DoH需DNS服务器支持HTTPS接口。这两种技术为网络安全提供支持,未来有望更广泛部署,提升网络环境的安全性。
|
2天前
|
域名解析 监控 网络协议
【域名解析DNS专栏】DNS域名劫持与防范策略:保护你的域名安全
【5月更文挑战第26天】DNS域名劫持是网络攻击手法,攻击者篡改DNS记录,将用户导向恶意网站,威胁隐私泄露、数据窃取及品牌信誉。防范策略包括使用DNSSEC加密验证响应,选择安全的DNS服务提供商,定期检查DNS记录,以及教育员工和用户识别网络威胁。通过这些措施,可以增强域名安全,抵御DNS劫持攻击。
|
3天前
|
域名解析 网络协议 安全
【域名解析 DNS 专栏】动态 DNS(DDNS)技术解析及其应用
【域名解析 DNS 专栏】动态 DNS(DDNS)技术解析及其应用 动态DNS(DDNS)技术在应对动态IP地址环境下,提供了一种灵活的解决方案,使设备能通过固定域名被访问。当设备IP改变时,DDNS服务会更新域名与新IP的映射,确保访问畅通。广泛应用于家庭远程访问设备和企业网络管理。简单的DDNS更新Python示例展示了发送请求更新过程。然而,DDNS面临服务可靠性和安全性的挑战。总体而言,DDNS技术提升了网络环境的便利性和效率,并将持续发展和完善。
|
3天前
|
域名解析 负载均衡 网络协议
【域名解析 DNS 专栏】如何利用 DNS 实现地理位置路由
【5月更文挑战第25天】利用DNS进行地理位置路由,能根据用户位置导向最近服务器,提升网络效率和用户体验。通过判断请求IP地址归属地,DNS返回相应区域的服务器IP。简单示例代码展示了如何实现此功能,但实际应用需借助专业数据库和处理网络复杂性的工具。尽管面临挑战,如代理服务器和网络环境影响,但DNS地理位置路由仍是优化网络性能的关键技术,对于内容分发和负载均衡具有重要意义。随着技术进步,这一领域的潜力将持续挖掘。
|
3天前
|
域名解析 网络协议 安全
【域名解析 DNS 专栏】反向 DNS 解析:IP 地址到域名的映射秘密
【5月更文挑战第25天】反向DNS解析将IP地址转换为域名,用于验证和识别网络通信来源。它在邮件服务器验证、网络安全中扮演关键角色,例如检查发送邮件服务器的反向DNS以防止垃圾邮件。通过Python示例展示了反向DNS解析过程。尽管可能遇到错误配置和不准确信息,正确管理的反向DNS解析能增强网络的可信度和安全性。随着技术进步,反向DNS解析将持续优化,提升网络体验。

相关产品

  • 云解析DNS
  • 推荐镜像

    更多