web-dev-qa-db-ja.com

CoreOSクラスターDNSセットアップ

CoreosクラスターのDNSを設定する方法がわかりません。

現在、haproxyロードバランサーとロードバランサーの(弾性)IPを指すDNSAレコードの背後にすべてのAPIインスタンスがあります。したがって、トラフィックをapi.myapp.comに送信すると、APIインスタンスにルーティングされます。これは正常に機能しますが、明らかにロードバランサーは単一障害点です。

Coreosを使用してクラスターのセットアップに移行し、クラスターが複数のサービス(apiサービスだけでなく)を実行している場合、現在と同じ方法でapi.myapp.comをクラスターにポイントするにはどうすればよいですか?このアドレスを使用して送信されたものは、どういうわけかクラスター内のAPIサービスにのみルーティングされますか?これは、coreosに関する多くのチュートリアルを読んだことから私には明らかではありません。

2
cjroebuck

HTTPホストヘッダーに基づいてトラフィックを転送するルーティングレイヤーを実行する必要があります(HAproxyは正常に機能するはずです)。必要に応じて、80/443にバインドされたいくつかのマシンでこのルーティングコンテナを実行します。これらのいくつかのマシンを指す各サービスのAレコードを追加します。これで、LBが高可用性になりました。

次に、HAproxyルーティングルールを設定して、ダウンストリームサービスの場所を利用し、トラフィックを適切にルーティングします。たとえば、api.example.comへのリクエストは、10.10.10.1、10.10.10.2、または10.10.10.3のいずれかにルーティングされます。ルーター(10.10.10.1:443)は、10.10.10.99:9999と10.10.10.98:9898で実行されているapi.example.comを担当する2つのバックエンドコンテナーがあることを確認します。トラフィックはコンテナの1つにルーティングされ、リクエストが実行されます。

Vulcanプロキシなどを使用したこの完全な例は次のとおりです。 https://coreos.com/blog/zero-downtime-frontend-deploys-vulcand/

3
Rob