DockerSwarmクラスターの構築を検討しています。物事をシンプルかつ比較的フォールトトレラントに保つために、私は単に3つのノードをマネージャーとして実行することを考えました。
専用のワーカーノードを使用しない場合のトレードオフは何ですか?はっきりしないかもしれないことを私が知っておくべきことはありますか?
私はこれを見つけました Githubの問題 これは同様の質問をしますが、答えは私には少しあいまいです。パフォーマンスが低下する可能性があると記載されています。また、コンセンサスに達するまでに時間がかかることにも言及しています。実際には、どの機能が遅くなりますか?そして、「コンセンサスに達するまでに時間がかかる」ことは実際に何に影響しますか?
TL;スウォームの労働者としてのすべてのマネージャーのDRの長所と短所:
長所:
短所:
あなたの質問への完全な回答
専用ワーカーノードを使用しない場合のトレードオフは何ですか?はっきりしないかもしれないことを私が知っておくべきことはありますか?
ワーカー専用ノードを使用するための厳しい要件はありません。必要なリソースがわかっていて、サービス/タスクの数が通常同じであるソリューションを展開している場合、これら3つを考慮している限り、3人のマネージャーだけがすべての作業を行うSwarmに問題はありません。影響を受ける領域:
その他の質問:
実際には、どの機能が遅くなりますか?そして、「コンセンサスに達するまでに時間がかかる」ことは実際に何に影響しますか?
より多くのマネージャー=マネージャーがダウンしたときに新しいリーダーを選出するのに時間がかかります。リーダーがいない間、Swarmは読み取り専用状態にあり、新しいレプリカタスクを起動できず、サービスの更新は行われません。 Swarmマネージャーは作業を実行できないため、失敗したコンテナーは自動回復されません。アプリ、入力ルーティングメッシュなどを実行していますが、すべて機能します。マネージャーの健全性とリーダー選出のパフォーマンスの大部分は、マネージャーの数と同様に、すべてのマネージャーノード間のネットワーク遅延に関係しています。これが、Dockerが一般に、単一のSwarmsマネージャーがすべて同じリージョンにいることを推奨しているため、相互に低遅延のラウンドトリップを取得します。ここにはハードセットルールはありません。マネージャー間の200ミリ秒の遅延とテストの失敗をテストし、リーダー選出の結果と速度に問題がない場合は、かっこいいです。
背景情報:
それはすべて、クラスターを構築する目的に依存します。開発目的では、ワーカーノードをマネージャーとして使用できます。本当の懸念はスケールアウトです。マイクロサービスインフラストラクチャが成長し続けると思われる場合は、簡単にスケールアウトできるようにワーカーノードとマネージャーノードを分離することを検討してください。
あなたのセットアップの長所は次のとおりです。
管理のしやすさ
セットアップは高可用性です-3ノードは1のフォールトトレランスを意味します
短所は次のとおりです。
スケールアウトには適していません。コンテナの計算要求は、ワーカーノードを追加することを意味します。
より多くのノードがスウォーム状態を更新するための提案を確認する必要があるため、追加のマネージャーノードは書き込みパフォーマンスを低下させます。これは、ネットワークのラウンドトリップトラフィックが増えることを意味し、サービスのパフォーマンスの問題を引き起こします。ドッキングされたアプリケーションがホストシステムを混乱させると、マネージャーサービスに影響します。スウォームタスクは引き続き実行されますが、スウォームノードを追加、更新、または削除することはできません。また、新規または既存のタスクを開始、停止、移動、または更新することはできません。管理者と労働者のサービスの分離はより安全です。