帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 弹性容器实例 ECI
  4. 操作指南
  5. 网络
  6. 服务发现DNS

服务发现DNS

  • 网络
  • 发布于 2025-04-15
  • 0 次阅读
文档编辑
文档编辑

DNS域名解析是ACK Serverless集群内实现服务发现的方式之一。本文主要介绍ACK Serverless集群中DNS域名解析原理和DNS服务发现方案。

索引

  • 注意事项

  • ACK Serverless集群中DNS域名解析原理

  • ACK Serverless集群支持的DNS服务发现方案

  • 常见问题

  • 相关文档

注意事项

  • 如果在创建ACK Serverless集群时,未开启任意DNS服务发现组件,容器Pod将默认使用VPC提供的DNS服务器进行域名解析。该模式下不支持Kubernetes内Service服务名的域名解析。

  • 对于已创建的ACK Serverless集群,启用DNS服务发现方案仅对新建的容器Pod生效,即启用前创建的容器Pod并不会随着方案的启用而切换其DNS配置文件,需重新创建容器Pod来使其接入新的DNS服务发现方案。

  • CoreDNS(托管)组件会逐步替换CoreDNS(非托管),直至CoreDNS(非托管)下线,后续您可能无法在控制台看到CoreDNS(非托管)。如需使用CoreDNS(非托管)组件,请提交工单咨询。

ACK Serverless集群中DNS域名解析原理

在ACK Serverless集群创建容器Pod时,默认情况下,/etc/resolv.conf文件的内容如下。该文件指定了DNS服务器、搜索域和一些其他参数。

# nameserver表示本容器Pod使用的DNS服务器IP地址。
nameserver 172.xx.x.xx
# search表示请求服务时需要拼接的域名后缀,当Pod处于kube-system命名空间时如下。
search kube-system.svc.cluster.local svc.cluster.local cluster.local
# 其他参数
options ndots:5

关于DNS域名解析配置文件和Pod DNSPolicy的字段含义,请参见DNS原理和配置说明。

ACK Serverless集群支持的DNS服务发现方案

DNS服务发现方案

说明

CoreDNS(托管)

推荐使用。容器Pod使用CoreDNS(托管)组件进行域名解析,由ACK Serverless来创建并保证CoreDNS的正常运行。您无需关心CoreDNS的运行状态,免除手动运维。此外,该方案不占用集群中的ECI实例。

CoreDNS(非托管)

容器Pod使用CoreDNS(非托管)组件进行域名解析,您必须确保正确配置CoreDNS,并时刻关注CoreDNS副本的运行状态。

PrivateZone

容器Pod使用PrivateZone组件进行域名解析,ACK Serverless会自动创建、更新PrivateZone中的域名解析记录。

CoreDNS(托管)

托管版CoreDNS组件通过kube-system命名空间下的kube-dns服务的集群IP暴露DNS服务。业务Pod使用托管CoreDNS的流程如下。

image.png

链路

说明

①

客户端(Client Pod)访问上游服务(TargetService)时,会先从本地DNS域名解析配置文件(/etc/resolv.conf)中获取DNS服务器地址,再向DNS服务器地址发出域名解析请求,查询TargetService对应的目标IP地址。

在本方案中,DNS服务器地址为ACK Serverless集群的kube-system命名空间下创建的名为kube-dns的集群IP的IP地址。kube-dns的集群IP的后端由ACK Serverless集群负责动态维护更新,您无需关注。

image.png

②

客户端(Client Pod)请求集群外部域名时,托管CoreDNS会将域名请求转发至VPC提供的DNS服务器(100.100.2.136、100.100.2.138)进行解析。

③

客户端(Client Pod)通过DNS服务器获取到上游服务(TargetService)的IP地址后,向该IP发出请求。

开启CoreDNS(托管)组件

重要
  • 开启CoreDNS(托管)组件后,ACK Serverless集群会自动在kube-system命名空间下创建名为kube-dns的集群IP服务。请勿手动修改。

  • CoreDNS(托管)组件逐步开放中,如在控制台无法看到CoreDNS(托管)组件,表明当前地域尚未开放支持CoreDNS(托管)组件。CoreDNS(托管)组件的自定义配置功能逐步开放中,如有使用需求,请提交工单咨询。

  • 方式一:对于新建的ACK Serverless集群,您可以在创建集群时,指定CoreDNS(托管)作为DNS服务发现,启用托管版CoreDNS组件。

    image.png

  • 方式二:对于已创建的ACK Serverless集群,您可以在集群管理页面,选择运维管理 > 组件管理,单击网络页签,然后单击CoreDNS(托管)组件的安装,启用托管版CoreDNS组件。具体操作,请参见管理组件。

CoreDNS(非托管)

CoreDNS(非托管)是Kubernetes集群中负责DNS解析的组件,能够支持解析集群内部自定义服务域名和集群外部域名。CoreDNS(非托管)具备丰富的插件集,在集群层面支持自建DNS、自定义Hosts、CNAME、Rewrite等需求。与Kubernetes一样,CoreDNS项目由CNCF托管,关于CNCF的更多信息,请参见CNCF。关于CoreDNS的更多信息,请参见CoreDNS: DNS and Service Discovery。

非托管版CoreDNS组件通过kube-system命名空间下的kube-dns的集群IP暴露DNS服务,业务Pod使用非托管CoreDNS的流程如下。

image.png

链路

说明

①

客户端(Client Pod)访问上游服务(TargetService)时,会先从本地DNS域名解析配置文件(/etc/resolv.conf)中获取DNS服务器地址,再向该DNS服务器地址发出域名解析请求,查询TargetService对应的目标IP地址。

在本方案中,DNS服务器地址为ACK Serverless集群kube-system命名空间的kube-dns的集群IP的IP地址。

image.png

②

客户端(Client Pod)请求集群外部域名时,CoreDNS会将域名请求转发至VPC提供的DNS服务器(100.100.2.136、100.100.2.138)进行解析。

③

客户端(Client Pod)通过DNS服务器获取到上游服务(TargetService)的IP地址后,向该IP发出请求。

开启CoreDNS(非托管)组件

  • 方式一:对于新建的ACK Serverless集群,您可以在创建集群时,指定CoreDNS作为DNS服务发现,启用非托管版CoreDNS组件。

    image.png

  • 方式二:对于已创建的ACK Serverless集群,您可以在集群管理页面,选择运维管理 > 组件管理,单击网络页签,然后单击CoreDNS组件的安装,启用非托管版CoreDNS组件。具体操作,请参见管理组件。

PrivateZone

PrivateZone是一项基于阿里云VPC环境提供的私有域名解析服务。通过使用PrivateZone控制器,就可以实现对ACK Serverless集群内各命名空间的Service和Endpoint资源的实时监控。该控制器与APIServer交互,自动将资源的域名同步到PrivateZone中。ACK Serverless中的容器Pod通过PrivateZone DNS解析服务就可完成Kubernetes的服务发现。关于如何使用PrivateZone方案,请参见ACK Serverless集群基于云解析PrivateZone的服务发现。

PrivateZone通过VPC提供的DNS服务器(100.100.2.136、100.100.2.138)暴露DNS服务,业务Pod使用PrivateZone的流程如下。

image.png

链路

说明

①

PrivateZone控制器连接至APIServer,监听集群中服务的创建和更新事件。

②

PrivateZone控制器监听到服务的创建和更新事件后,将其同步至PrivateZone产品中权威Zone解析记录中。

③

客户端(Client Pod)访问上游服务(TargetService)时,会先从本地DNS域名解析配置文件(/etc/resolv.conf)中获取DNS服务器地址,再向该DNS服务器地址发出域名解析请求,查询TargetService对应的目标IP地址。

在本方案中,DNS服务器地址为DNS域名解析配置文件中配置VPC提供的DNS服务器IP地址(100.100.2.136、100.100.2.138)。DNS服务器会从PrivateZone获取正确的解析记录,返回给客户端。

④

客户端(Client Pod)通过DNS服务器拿获取到上游服务(TargetService)的IP地址后,向该IP发出请求。

开启PrivateZone组件

  • 方式一:对于新建的ACK Serverless集群,您可以在创建集群时,指定PrivateZone作为DNS服务发现,启用PrivateZone组件。

    image.png

  • 方式二:对于已创建的ACK Serverless集群,您可以在eci-profile配置项中设置enablePrivateZone参数值为true,启用PrivateZone组件。

常见问题

如何确认当前集群CoreDNS(托管)、CoreDNS(非托管)、PrivateZone组件已成功开启?

  • CoreDNS(托管)和CoreDNS(非托管)组件

    登录容器服务管理控制台,在集群管理页面,选择运维管理 > 组件管理,单击网络页签,如果组件右上角有已安装字样,说明当前集群的CoreDNS(托管)或CoreDNS(非托管)组件已开启成功。

    以CoreDNS(托管)组件为例,如下图所示。

    image.png

  • PrivateZone组件

    登录PrivateZone控制台,通过ACK Serverless的VPC ID搜索权威Zone,如果能够搜到名称以集群ID结尾的Zone,则说明PrivateZone已开启成功。

如何确认业务Pod正在使用CoreDNS(托管)、CoreDNS(非托管)、PrivateZone组件?

  • CoreDNS(托管)和CoreDNS(非托管)组件

    通过执行命令kubectl exec进入容器Pod中,执行命令cat /etc/resolv.conf,如果nameserver字段被指向到kube-system命名空间下的kube-dns服务的集群IP地址,说明该Pod正在使用CoreDNS(托管)或CoreDNS(非托管)组件。

  • PrivateZone组件

    通过执行命令kubectl exec进入容器Pod中,执行命令cat /etc/resolv.conf,如果nameserver字段被指向到100.100.2.136和100.100.2.138(此处IP为本文示例IP,具体指向的IP地址以实际为准),说明Pod正在使用PrivateZone组件。

相关文档

  • DNS原理和配置说明

  • DNS最佳实践

相关文章

ALB Ingress概述 2025-04-15 17:15

本文介绍Ingress基本概念、ALB Ingress Controller工作原理和ALB Ingress Controller使用说明。 Ingress基本概念

管理ALB Ingress Controller组件 2025-04-15 17:15

ACK Serverless集群基于ALB七层转发规则提供了托管的ALB Ingress Controller。本文介绍如何在ACK Serverless集群安装、升级和卸载ALB Ingress Controller。

通过ALB Ingress访问服务 2025-04-15 17:15

ALB Ingress支持HTTP、HTTPS和QUIC协议,满足云原生应用在需要高度弹性和大规模七层流量管理时的各种需求,与Nginx Ingress兼容。同时,支持复杂的业务路由配置和TLS证书的自动管理,提供灵活的流量管理机制。您可以通过配置转发规则,实现不同URL访问集群内不同的Servic

ALB配额计算方式 2025-04-15 17:15

配额(Quota)是指在特定时间段内,对某个资源或服务的使用量或访问次数的限制,通常用于控制资源的分配和使用。在阿里云负载均衡(ALB)服务中,配额计算方式是根据不同的资源类型和资源使用情况来确定的。本文从标准版ALB实例、服务器组、监听和转发规则几个方面介绍ALB的配额计算方式。 ALB配额计算示

ALB Ingress服务高级用法 2025-04-15 17:15

在ACK Serverless集群中,ALB Ingress对集群服务(Service)中外部可访问的API对象进行管理,提供七层负载均衡能力。本文介绍如何使用ALB Ingress将来自不同域名或URL路径的请求转发给不同的后端服务器组、将HTTP访问重定向至HTTPS及实现灰度发布等功能。

ALB Ingress配置词典 2025-04-15 17:15

您可通过配置AlbConfig资源以自定义ALB实例的配置。本文列举了ALB Ingress支持的Annotation(注解)以及AlbConfig字段的具体内容和用法。 索引 Annotation字段 <

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1