8

小さな Mesos クラスターがあり、Marathon を使用して、それぞれ可変数のインスタンスを持つ一連の長期実行サービスを管理しています。

ビジネス ニーズに応じて、新しいノードを起動したり、一部のノードを終了したりできるようにしたいと考えています。ただし、ノードを終了するときに、潜在的な問題があることに気付きました。Mesos スレーブをシャットダウンすると、いくつかのサービスのインスタンスの数が一時的に定義された を下回ることが起こりますminimumHealthCapacity。たとえば、停止するマシンが 1 つのインスタンスのみでサービスを実行している場合、ダウンタイムが発生する可能性があります。

次の単純化されたシナリオを考えてみましょう: ノード 1 はサービス A を実行しており、ノード 2 はサービス B を実行しており、ノード 3 はサービス C をminimumHealthCapacity実行しています。サービス A でダウンタイムが発生することは望ましくありません。意図した動作の例としては、サービス A を 2 にスケーリングしてから、ノード 1 を安全に終了することが挙げられます。

を下回るサービスがないことを確認するにはどうすればよいminimumHealthCapacityですか?

理想的には、そのためのローリング アップデートにヒントを得たプロセスが必要です。代替品は別のマシンで起動され、その後マシンのサービスが終了してシャットダウンされます。スケールダウンが簡単なスクリプトで済むように、少なくともそれを行うための自動化されたプロセスが必要です。そのために必要な時間はありません。つまり、Marathon の移行が完了して成功したことを確認した後でのみ、Mesos スレーブをシャットダウンできます。

4

1 に答える 1

1

Mesos 開発チームは現在、「メンテナンス プリミティブ」に取り組んでいます。これにより、オペレーターは、特定のマシンが特定の時間 (またはできるだけ早く) ダウンするようにスケジュールされていることを示し、意図した使用不可ウィンドウを通知するメッセージを各フレームワークにトリガーできます。Marathon のようなフレームワークは、サービスのダウンタイムなしで安全に終了できるように、そのノードからタスクを移行することを決定できます。

詳細/パッチについては、https://issues.apache.org/jira/browse/MESOS-1474を参照してください。

于 2015-08-04T03:34:11.727 に答える