由于SAE应用的K8s Service能力依赖阿里云上默认DNS解析服务地址,若需访问内部域名,需通过PrivateZone的转发规则配置外部DNS服务器。本文主要介绍利用PrivateZone的转发规则,实现同时支持K8s Service内部解析及外部DNS系统的定向转发,确保两者兼容并满足业务混合DNS解析需求。
方案概览
使用场景
本文适用于SAE应用中需同时依赖内网DNS解析(PrivateZone)的内置权威功能与外部DNS系统的兼容解析场景。
K8s Service解析:开启SAE应用的K8s Service后,通过
Service Name
访问集群内部服务(如demo.test.svc.cluster.local.cn-hangzhou
)依赖PrivateZone自动生成的内置权威记录。内部域名解析:若需访问由自建或第三方DNS系统管理的域名(如
www.example.com
),由于SAE默认DNS策略无法解析用户的内部域名,需通过配置PrivateZone的转发规则,将特定域名(如www.example.com
)的解析请求定向至外部DNS服务器,实现内外域名兼容解析。
操作流程
解析外部DNS服务器流程
前提条件
请在已有的业务系统中搭建DNS Service服务。
由于搭建DNS Service服务的方式有多种(如在ECS中搭建、容器服务中安装CoreDNS组件等),所以本示例中不演示搭建过程。
1. 为SAE应用开启K8s Service
本文只介绍关键步骤,详细配置,请参见基于K8s ServiceName配置应用服务访问。
在目标SAE应用部署应用页面的服务注册发现区域,开启基于K8s Service服务注册发现,然后配置端口、容器端口和协议。
开启K8s Service后,系统会在内网DNS解析(PrivateZone)中添加一条解析记录。可在云解析DNS控制台的内置权威页签查看解析记录。
在基础信息页面的应用信息页签,找到应用访问设置区域,复制基于K8s Service Name访问页签的访问地址。
2. 配置前测试解析结果
使用Webshell登录目标SAE应用的实例,然后使用nslookup
或dig
命令解析目标域名。
本示例中需要解析的外部DNS服务器的域名为www.example.com
,内网IP地址为192.168.2.54
。
正向解析结果如下:
无法解析到外部DNS系统的IP地址。
说明完成以下步骤,即可将解析请求转发至外部DNS系统。
根据基于K8s Service Name访问地址成功解析到了记录值。该记录值可在云解析DNS控制台的内置权威页签进行验证。
3. 创建出站终端节点
登录云解析DNS控制台。
单击左侧导航栏的内网DNS解析 (PrivateZone),在页面右上角选择管理配置模式,然后单击转发管理按钮。
在转发管理页面选择出站终端节点页签,然后单击创建出站终端节点。
在创建出站终端节点对话框内完成终端节点名称、出站VPC、安全组、出站流量源IP地址的配置,然后单击确定。
终端节点名称:当前创建的终端节点名称,根据实际业务需求命名。
出站VPC:转发管理所有出站DNS查询流量都将经由此VPC进行流量转发。
重要出站终端节点一旦创建,不允许修改“出站VPC”,避免误操作造成线上流量中断。
选择安全组:安全组里面的规则将应用于出站VPC。
重要安全组出向53端口请保持开启,入向规则对于转发功能无影响。
目前仅支持选择非托管安全组。
出站流量源IP地址:可用区域下子网中可用的IP地址。
重要为了保证高可用,解析器要求至少添加两个出站源IP地址,而且建议这2个IP地址分布在不同的可用区,解析器允许添加的出站源IP地址最多为6个。
若不配置IP地址,则系统会自动分配。
若外部DNS服务器为公网IP,需配置公网NAT网关以确保该IP能够访问公网。
4. 配置转发规则及生效范围
4.1 配置转发规则
在内网DNS解析 (PrivateZone)页面的转发管理页签,单击转发规则,然后单击创建转发规则。
在弹出的创建转发规则面板,配置转发规则参数,然后单击确定。
规则名称:根据业务需要及业务含义自定义规则名称。
规则类型:目前仅支持转发至外部IP。
转发域名(Zone):配置需要转发解析的域名(Zone)。
重要支持全部域名(根域)转发,请输入英文句号:
.
。支持顶级域名转发,例如可以输入:
com
,cn
,top
等。如果解析请求同时命中多个转发域名,例如:
example.com
、com
、.
等,按照最长Zone匹配优先生效规则,解析请求会命中example.com
。
出站终端节点:选择上一步骤配置的出站终端节点名称。
外部DNS系统的IP地址和端口:DNS查询流量被转发的目标服务器的IP地址和端口,最多只能创建6个,支持私网IP地址和公网IP地址。
重要以下地址段内的IP地址为系统预留地址,不允许被配置为外部DNS系统的IP地址:
100.100.2.136~100.100.2.138、100.100.2.116~100.100.2.118
。若您填写的外部DNS服务器为公网IP,且您出站终端节点VPC内ECS无公网IP,请开通NAT网关并配置NAT网关私网SNAT条目。
4.2 配置转发规则生效范围
单击已创建转发规则操作列的转发规则生效范围,在弹出的转发规则访问面板配关联转发域名规则生效的VPC,然后单击确定。
此处关联的VPC必须要与目标SAE应用所在的VPC一致。
转发规则可关联的VPC列表,必须与出站终端节点属于同一地域。
不同转发规则,关联相同VPC情况下,转发域名不允许相同。
转发规则与内置权威域名设置相同生效范围情况下,转发域名可以与内置权威域名相同,且关联VPC内域名解析请求由内置权威优先处理。
支持关联跨账号关联VPC。
5. 验证解析结果
使用Webshell登录目标SAE应用的实例,然后使用nslookup
或dig
命令解析目标域名。
正向解析结果显示,
成功解析到了外部DNS系统的IP地址。
根据基于K8s Service Name访问地址成功解析到了记录值。
证明DNS转发管理配置成功。