企业在迁移上云过程中,经常遇到要逐步迁移上云的情况,例如数据库等服务仍然保留在IDC机房,而web服务等业务使用天翼云主机或者容器来对外提供服务。此时一方面天翼云的主机或容器需要通过域名访问天翼云的内网公共服务,另一方面天翼云的主机还需要通过域名访问IDC机房的主机。此时就涉及天翼云的内网DNS服务和客户线下IDC机房DNS 服务的配合使用。
场景1:容器需要同时使用天翼云内网服务和IDC机房的域名解析服务
方案1:使用coreDNS 做DNS域名的分发,将天翼云的内网域名请求转发到天翼云内网DNS server,而IDC的域名请求转发到IDC的DNS server;其中天翼云内网DNS server地址使用保留地址100.95.0.1,容器内网可以直接访问该地址。
1)CoreDNS的配置
参考:[CoreDNS介绍]
[容器中域名解析的最佳实践]
[Corefile: ]
.:53 {
errors
health {
lameduck 15s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
#将除天翼云外的其他域名解析默认发给IDC机房内的DNS server,例如192.168.0.100
forward . 192.168.0.100 {
prefer\_udp
}
cache 30
loop
reload
loadbalance
}
#将除天翼云域名为ctyun.cn的解析请求发给天翼云内网DNS服务对应的DNS终端节点。
ctyun.cn:53 {
errors
cache 30
forward . 100.95.0.1 {
prefer\_udp
}
}
2)VPC内生成相关服务的终端节点
以容器需要访问天翼云的容器认证公共服务为例,系统会自动在用户VPC内创建一个容器管理终端节点,例如10.0.0.3连接到容器的管理认证服务ccseManageVpce
3)天翼云内网DNS的配置
针对天翼云的内网公共服务,如果用户创建了相关的业务,天翼云的内网DNS 会自动生成对应的内网域名解析的A记录。例如用户开启容器引擎后,系统先会创建用户VPC内的DNS终端节点并连接到天翼云内网DNS,同时天翼云内网DNS会自动下发相关服务的域名A记录。
例如A,300,ccse-auth-forward xxx.ctyun.cn, 10.0.0.3
方案适用场景:
该分布式DNS解析方案中,容器的DNS 请求先都通过CoreDNS server来做分发,将天翼云的域名转发天翼云内网DNS服务器解析,而将其他域名分发给IDC机房的DNS服务解析。解析的路径短,解析完成的延时较小,访问体验佳。
方案2:
如果企业对职能划分的边界比较清晰,例如有专门的DNS管理团队和容器管理团队,同时企业规模较大,在多个云厂商都部署了相关业务,那么每个容器服务内的CoreDNS都根据云厂商的公共域名服务做差异化的配置,管理较为复杂。这些企业希望集装箱化的管理,容器团队只负责容器相关的业务部署,不同云,甚至同一个云里不同的容器集群CoreDNS配置相同,而DNS域名解析针对不同云厂商的差异集中收编到IDC机房的DNS server来管理,那么可以使用如下方案。
1) CoreDNS配置
不同云的CoreDNS配置相同。
Corefile: |
.:53 {
errors
health {
lameduck 15s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
#将所有域名解析默认发给IDC机房内的DNS server,例如192.168.0.100
forward . 192.168.0.100 {
prefer\_udp
}
cache 30
loop
reload
loadbalance
}
2) 为用户VPC2创建DNS 服务的终端节点
由于天翼云内网DNS server使用的是保留地址100.95.0.1,此地址并不能通过专线和IDC机房路由打通。所以需要配置VPC内的DNS终端节点,使用VPC2内的地址10.0.0.63跟天翼云内网DNS server打通,并将10.0.0.63的路由发布给用户自建IDC数据中心的DNS server1。 IDC机房的DNS server后面配置的针对天翼云域名的转发策略将使用10.0.0.63作为转发地址。
第一步,选择云服务cn.ctyun.cn-xxx.dns,指定VPC,如本例为VPC2,终端节点可以手工指定为10.0.0.63,也可以默认让系统分配。
创建完成后显示已连接。
3) IDC DNS server 配置
IDC 机房的DNS 服务器将ctyun.cn和cnsp-internal.ctyun.cn设置转发规则,转发到天翼云用户VPC2内的DNS终端节点 10.0.0.63.
场景2:虚拟机批量指定到线下IDC 的DNS server
可以参考:
[DHCP选项集概述 ]
例如需要将ECS1,ECS2等DNS 服务从默认的100.95.0.1修改到IDC机房的DNS server 192.168.0.100
修改完成后,打开ECS1,查询DNS server地址,已经修改到线下IDC机房 DNS server 地址。