パブリックIPv6でDocker SwarmコンテナーにDNS名を割り当てる


7

公開されているIPv6でDockerコンテナー(Swarmモードで実行)をセットアップする方法を理解しようとしています。

Docker Swarmがメッシュルーティングを使用していることは知っていますが、DNS名をアドレスに動的に割り当てる方法がよくわかりません。

例として、Gitサーバー(HTTP 80 443およびSSH 22を使用)git.example.comと通常のWebサーバーexample.com(HTTP 80 443を使用)を実行するとします。どちらもパブリックIPv6アドレスを持っていますが、IPv6アドレスを(たとえばCloudFlareで)ハードコードしたくありません。結局、これはDevOpsです。

これを行うにはどうすればよいですか?これには自分のDNSサーバーを実行する必要があると思います。

:さらに調査を行った結果、残念ながらEnterprise Editionの一部にすぎないDocker HTTP Routing Mesh(HRM)でこれが可能であるようです。これに対する同様のオープンソースのアプローチを知っている人はいますか?

回答:


3

「公に利用可能」が公衆インターネット上にあると仮定すると、それは難しいでしょう。

DNSは実際には変更に対してそれほど反応的ではなく、パブリックインターネット上で安全な方法で実行することは困難です。

また、既存のプロトコルがRFCでのサポートから除外されているSRVレコードが奇妙であるため、実行しているプロトコルによっても異なります。

しかし、一般的に私が実装するパブリックソリューションとプライベートソリューションは似ていますが、パブリックインターネットソリューションの追加レイヤーがあります。(サードパーティまたは地域固有の回答を使用しない場合)

インターネットエッジでは、エッジでUnbound DNSサーバーを使用し、サービス登録を処理する領事にクエリをリレーさせる。

これが私用である場合、データセンターの認識とフェイルオーバーが可能になります。

内部使用のみの場合は、consulを使用して、内部DNSサーバーを設定してサブドメインを委任するか、デフォルトのドメインに転送することができます。


DNSの直接変更は、AAAAレコードの更新を高速で行う場合(キャッシュの期限切れやプライベートBINDからパブリックNSサーバーへのゾーン転送よりも速い場合)に問題となる可能性があります。予想されるDNS更新頻度はどのくらいですか?
追跡
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.