我正在尝试了解如何使用公开可用的IPv6设置Docker容器(以Swarm模式运行)。

我知道Docker Swarm使用网状路由,但我不太了解可以动态地为地址分配DNS名称。

例如,假设我要在git.example.com上运行Git服务器(使用HTTP 80 443和SSH 22),并在example.com上运行常规Web服务器(使用HTTP) 80 443)。两者都有公共的IPv6地址,但是我不想对IPv6地址进行硬编码(例如,在CloudFlare)。毕竟,这就是DevOps!我假设我需要为此运行自己的DNS服务器。

注意:经过更多研究,似乎可以使用Docker HTTP Routing Mesh(HRM)来实现,但不幸的是,它只是其中的一部分企业版。有谁知道类似的开源方法吗?

#1 楼

假设“公开可用”在公共Internet上将很困难。

DNS并不是对更改具有真正的反应,并且对在公共Internet上以安全的方式运行提出了挑战。

这也取决于您正在运行的协议,因为SRV记录中有一个奇怪的地方,先前存在的协议在RFC中不支持该协议。

但是一般来说,公众和我要实现的私有解决方案与公共Internet解决方案的附加层相似。 (假设不使用第三者或特定于地理位置的答案)

在Internet边缘上,使用边缘上的Unbound DNS服务器,并将其中继查询到负责处理服务注册的领事。

如果这是供私人使用的话,这将使您对数据中心有所了解并进行故障转移。服务器委派子域或转发到默认域。

评论


如果您要快速进行AAAA记录更新(比高速缓存过期或从私有BIND到公共NS服务器的区域转移更快),则直接DNS更改可能会出现问题。预期的DNS更新频率是多少?

–追逐
17年6月26日在20:48