本文重点介绍火山引擎 E-MapReduce(EMR)集群使用自定义DNS的转发配置,该文档仅支持自建 DNS 能够访问通火山 Name Server 的场景(100.96.0.2,100.96.0.3),否则需要按 此文档 修改。
EMR使用了PrivateZone来管理集群内的节点域名,具体的规则见 域名规则,当您在指定了自定义的DNS服务器(VPC概览页面的DNS字段)的VPC下创建集群时,需要给自建的DNS服务器配置相应的转发规则,否则会影响集群的创建。此外,在集群创建后修改VPC的DNS属性也会影响集群的扩容和集群内各组件的通信。
因此当使用自定义 DNS 服务器,需要配置相应的转发规则将特定域名的解析转发到火山 DNS,以下以CoreDNS 为例进行相应的配置。
首先需要根据您要创建的集群版本确定对应的域名(见域名规则)
如您要创建的是EMR 3.4.0/2.3.0 及之前版本, VPC 的 id 是 vpc-123456,那么相应的需要转发的域名是emr-123456.internal
EMR 3.5.0/2.4.0 及之后版本, 那么需要转发的域名是emr-volces.com
下面以 emr-volces.com 为例的基础配置,其余配置可以按需添加调整。
为了否定缓存不影响集群的创建和扩容,这边直接禁用了否定缓存,如果您要开启否定缓存的话,建议您缓存时间不超过 10秒。
emr-volces.com { forward . 100.96.0.2 100.96.0.3 cache { disable denial } }
相关火山服务会在私网访问ivolces.com,建议也同步设置下。
ivolces.com { forward . 100.96.0.2 100.96.0.3 }
此外如果您创建的集群开启了 Kerberos,那么需要额外配置反向域名解析,其余配置可以按需添加调整。
同样的原因这边也禁用了否定缓存,此外由于频繁的扩缩容可能会使用同一个 IP,这边将正向缓存时间设置了5秒,如果您要调整的话建议不超过 10 秒。
反解域名的确定
如果和您已有的域名不冲突的话,可以直接使用in-addr.arpa
如果需要更细粒度的域名的话,可以查看您 VPC 的 CIDR,EMR 会尽可能使用被 8 整除的网络前缀的 IP 块来构建反解域名
如您的 VPC 的 CIDR 是192.168.0.0/16,那么构建的反解域名是168.192.in-addr.arpa
如您的 VPC 的 CIDR 是192.168.0.0/17,那么构建的反解域名是168.192.in-addr.arpa
如您的 VPC 的 CIDR 是192.168.1.0/25,那么构建的反解域名是1.168.192.in-addr.arpa
下面以1.168.192.in-addr.arpa为例
1.168.192.in-addr.arpa { forward . 100.96.0.2 100.96.0.3 cache { success 5000 5 disable denial } }