序章
私は複数を実行しています。私はそれらを領事スタックと呼んでいます。- 1 つの領事サーバー - 9 つの領事ノード
各ノードはいくつかのサービスを提供します - 従来の Web スタックなどです (この質問には興味がありません)。ゴシップは、サーバーが任意のノードによって照会されるのを防ぎ、データを公開するために使用されます。複数の consul-template/tiller の「ウォッチャー」が、KV の変更時にノード/サービスを動的に構成するために待機しています
ゴール
これらのスタックが 10 個あり (数値は動的です)、特定のロジックを使用して各スタックの consul-KV を制御する Web アプリを構築したいとします。
私が今持っているもの
特定の KV エントリを作成するために必要なロジックをラップする thor+diplomat ツールを作成しました。スタック内の「コントローラー」コンテナーで実行しながら実装し、localhost:8500 と通信しました。これにより、ゴシップで認証され、サーバーに書き込まれます。
質問
このツールをリモート (consul-stack の一部ではない) サーバーに移動し、各 consul-stacks KV に書き込むことができるようにするために、どのような概念を使用しますか。
確かに、diplomat を使用して stack1.tld:8500 に接続できますが、これは HTTP ポートを開き、何らかの方法でセキュリティを確保する必要があることを意味します (ゴシップによって保護されていませんか? どうにかして、RPC のみですか?) および /ui も保護します。
- これらの各スタックに接続するためのより良い方法はありますか?
- アクセスを保護するために、8500 の前に基本認証を持つ nginx プロキシ サーバーを使用しますか?
- また、このポートでssl-interceptionを使用し、引き続き8500を使用するか、構成されたhttpsポートを使用します(consul HTTPS APIで)
- ACL を使用してアクセスを保護しますか? (スタックメンバーのアクセスを許可するための多くのセットアップ - TLS が必要ですか?)
一般に、TLS (クライアントがセットアップするために多くの作業が必要です) を使用しない場合、スタックサーバーと通信して KV に安全に書き込む必要があるこの必要性に適合する概念は何ですか。
私が何かを逃した場合は、あなたが求めるものを追加してください