SAE应用同时开启K8s Service和内部域名的DNS转发

由于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服务器,实现内外域名兼容解析。

操作流程

image

解析外部DNS服务器流程

image

前提条件

请在已有的业务系统中搭建DNS Service服务。

说明

由于搭建DNS Service服务的方式有多种(如在ECS中搭建、容器服务中安装CoreDNS组件等),所以本示例中不演示搭建过程。

1. 为SAE应用开启K8s Service

本文只介绍关键步骤,详细配置,请参见基于K8s ServiceName配置应用服务访问

  1. 在目标SAE应用部署应用页面的服务注册发现区域,开启基于K8s Service服务注册发现,然后配置端口容器端口协议

    FaS7U7ormo

    开启K8s Service后,系统会在内网DNS解析(PrivateZone)中添加一条解析记录。可在云解析DNS控制台内置权威页签查看解析记录。
  2. 基础信息页面的应用信息页签,找到应用访问设置区域,复制基于K8s Service Name访问页签的访问地址。

    qRH3OmGCsi

2. 配置前测试解析结果

使用Webshell登录目标SAE应用的实例,然后使用nslookupdig命令解析目标域名。

本示例中需要解析的外部DNS服务器的域名为www.example.com,内网IP地址为192.168.2.54

1AzgDnrwex

正向解析结果如下:

  • 无法解析到外部DNS系统的IP地址。

    说明

    完成以下步骤,即可将解析请求转发至外部DNS系统。

  • 根据基于K8s Service Name访问地址成功解析到了记录值。该记录值可在云解析DNS控制台内置权威页签进行验证。

    dualxXYJdW

3. 创建出站终端节点

  1. 登录云解析DNS控制台

  2. 单击左侧导航栏的内网DNS解析 (PrivateZone),在页面右上角选择管理配置模式,然后单击转发管理按钮。

  3. 转发管理页面选择出站终端节点页签,然后单击创建出站终端节点

    GMch5y3SAB

  4. 创建出站终端节点对话框内完成终端节点名称出站VPC安全组出站流量源IP地址的配置,然后单击确定

    ah8WInk2jC

    • 终端节点名称:当前创建的终端节点名称,根据实际业务需求命名。

    • 出站VPC:转发管理所有出站DNS查询流量都将经由此VPC进行流量转发。

      重要

      出站终端节点一旦创建,不允许修改“出站VPC”,避免误操作造成线上流量中断。

    • 选择安全组:安全组里面的规则将应用于出站VPC。

      重要
      • 安全组出向53端口请保持开启,入向规则对于转发功能无影响。

      • 目前仅支持选择非托管安全组。

    • 出站流量源IP地址:可用区域下子网中可用的IP地址。

      重要
      • 为了保证高可用,解析器要求至少添加两个出站源IP地址,而且建议这2IP地址分布在不同的可用区,解析器允许添加的出站源IP地址最多为6个。

      • 若不配置IP地址,则系统会自动分配。

      • 若外部DNS服务器为公网IP,需配置公网NAT网关以确保该IP能够访问公网。

4. 配置转发规则及生效范围

4.1 配置转发规则

  1. 内网DNS解析 (PrivateZone)页面的转发管理页签,单击转发规则,然后单击创建转发规则

  2. 在弹出的创建转发规则面板,配置转发规则参数,然后单击确定

    8AvW2ooS1v

    • 规则名称:根据业务需要及业务含义自定义规则名称。

    • 规则类型:目前仅支持转发至外部IP。

    • 转发域名(Zone):配置需要转发解析的域名(Zone)。

      重要
      • 支持全部域名(根域)转发,请输入英文句号:.

      • 支持顶级域名转发,例如可以输入:comcntop等。

      • 如果解析请求同时命中多个转发域名,例如:example.comcom.等,按照最长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,且您出站终端节点VPCECS无公网IP,请开通NAT网关并配置NAT网关私网SNAT条目

4.2 配置转发规则生效范围

单击已创建转发规则操作列的转发规则生效范围,在弹出的转发规则访问面板配关联转发域名规则生效的VPC,然后单击确定

image

重要
  • 此处关联的VPC必须要与目标SAE应用所在的VPC一致。

  • 转发规则可关联的VPC列表,必须与出站终端节点属于同一地域。

  • 不同转发规则,关联相同VPC情况下,转发域名不允许相同。

  • 转发规则与内置权威域名设置相同生效范围情况下,转发域名可以与内置权威域名相同,且关联VPC内域名解析请求由内置权威优先处理。

  • 支持关联跨账号关联VPC

5. 验证解析结果

使用Webshell登录目标SAE应用的实例,然后使用nslookupdig命令解析目标域名。

fPUkdQDx3V

正向解析结果显示,

  • 成功解析到了外部DNS系统的IP地址。

  • 根据基于K8s Service Name访问地址成功解析到了记录值。

证明DNS转发管理配置成功。