子域名管理工具的主要功能就是用来解决这个问题的, 它可以让操作人员在同一个DNS域名的基础上, 去实现批量创建、配置以及监控子域名的工作, 这些子域名包括像api.example.com还有blog.example.com这样的形式, 这么做的话, 就可以把以前那种需要手动一条一条地添加DNS记录的工作方式给取代掉了。

根据目前的市场情况来看, 主流的处理方案大概分为三个种类, 分别是云厂商自己提供的原生DNS管理面板, 还有开源的专门针对子域名管理的工具, 最后一种是集成在DevOps平台内部的用于DNS编排的模块。

主流子域名管理工具对比

1. 云厂商的DNS管理面板, 比如阿里云DNS、腾讯云DNSPod还有Cloudflare。

这句话适用的具体场景是企业内部日常的运营工作, 其中子域名的总数控制在五十条以内。它的核心本事包括能够用图形界面的方式来进行增加、删除、修改以及查询, 允许设置TTL时间, 支持针对不同的网络线路进行解析, 还具备批量处理的功能。

之所以说它有优势, 是因为可以直接拿来使用, 不需要太多复杂的准备, 并且和公司现有的云账号体系实现了连接和打通;但是它也有局限性, 主要体现在当涉及不同云服务提供商的时候通用性不强, 如果想要使用更高级的策略配置功能, 还需要另外支付费用。

2. 开源子域名管理工具(Consul、PDNS、自研脚本)

这种方案适用的场景主要是那些规模较大的互联网企业, 这类企业的子域名数量通常会超过五百条, 因此它们需要有自动化的方式进行编排工作。该系统的核心能力在于它可以通过API来驱动操作, 能够和CI/CD流水线进行集成, 并且具备版本控制的功能。

它的主要优势是让整个流程完全处于可控状态, 避免了厂商锁定的风险;但是它的局限之处在于, 运维的门槛比较高, 必须要有一个专门的团队来进行日常维护工作。

3. DevOps平台内置DNS模块(Kubernetes ExternalDNS、Argo CD)

适用场景方面, 是云原生架构和容器化部署环境。在核心能力上, 它会随着服务的启动或停止, 来自动创建或删除子域名, 并且还要与服务、入口资源进行联动。它的优势在于, 完全不需要人工去操作。不过, 也有局限性存在, 因为这个东西只适配Kubernetes这个生态系统。

子域名配置操作要点

在建立命名的规范的时候, 是要采取一种叫做“业务线.环境.主域名”这样的格式来做统一的要求的, 比方说像那种写的是pay.prod.example.com的例子那样去做就对了的, 这么做的目的在于避免因为对名字的命名方式太随意了这种状况去出现了一些问题, 从而导致后期会面临一些混乱的情况需要去处理的。

关于TTL的设置子域名管理工具,这里要说清楚一点, 在生产环境下面, 建议把这个值设成300秒以下。而在开发测试的环境里面呢, 是可以把它设成86400秒的。

所谓批量导入, 这是绝大多数工具都支持的一项功能, 这些工具能够接受CSV格式或者JSON格式的数据进行输入操作, 在一次操作流程当中, 可以一次性处理多达数千条的记录信息。

子域名管理工具怎么选?主流工具对比与配置要点(图1)

变更审计: 开启操作日志功能, 对每次子域名的增加、删除以及修改操作的时间节点、实际操作人员以及具体的变动内容进行记录。

高频问题

问: 子域名与主域名解析冲突怎么处理呢?

答案是子域名会继承主域名的SOA记录和NS记录, 但是A记录和CNAME记录需要分别进行独立配置, 如果出现冲突的情况, 优先检查是否误将子域名设置成了主域名的CNAME目标。

问:如何批量下线一批子域名?

回答是, 通过让管理工具去执行批量删除的功能, 或者是在调用api接口的时候把域名列表传进去, 来实现一次性的操作, 而且在进行这个操作之前一定要先做好备份导出工作。

问题是, 那个子域名方面, 它的那个Https那个证书能不能就自己弄个续签的操作出来。

答: Cloudflare 以及那些支持 ACME 协议的工具, 都是可以使用的。只要把 Let's Encrypt 或者商用证书给配置好, 就可以了, 这样做就能实现自动签发和自动更新。

选型建议

如果子域名的数量少于100条, 而且使用的是单一的云厂商, 那么直接用该云厂商提供的 DNS 面板就行了。倘若子域名的数量在100至500条之间, 并且需要有跨云的统一管理需求, 那么推荐选择 Cloudflare或者自行搭建 PDNS系统。

假如子域名的数量超过了500条, 同时所处的环境是云原生架构, 那么优先考虑采用 Kubernetes ExternalDNS方案。

在实际部署的时候, 建议先把完整的流程在测试环境里面验证一遍。

可以以m.dcqzss.cn这一个例子来说一下情况, 因为这个子域名通常都是用来承载移动端业务入口的, 所以在进行配置工作的时候, 应当把这个TTL的值设为60秒以内, 并且同时还要去绑定一些CDN加速的规则, 以此来确保处于移动端的用户在进行访问操作时能够把延迟降到最低程度。

前面的这种方案, 是可以覆盖从入门级一直到大型架构里面的子域名管理的所有场景的, 大家只需要按照自己团队的规模, 还有业务的复杂程度子域名管理工具青岛高世电气科技有限公司,去对号入座就可以了。