Mesosphereとは
Mesosphereは、Apache Mesosのクラスタ管理機能を拡張し、追加のコンポーネントを追加して、サーバーインフラストラクチャを管理する新しい新しい方法を提供するソフトウェアソリューションです。 Mesosphereは、MarathonやChronosなどの複数のコンポーネントをMesosと組み合わせることで、スケーリングに関連する多くの課題を抽象化することにより、アプリケーションを簡
Mesosphereは、アプリケーションのスケジューリング、スケーリング、フォールトトレランス、自己修復などの機能を提供します。 また、アプリケーションサービスの検出、ポートの統一、およびエンドポイントの弾力性も提供します。
Mesosphereが前述の機能をどのように提供するかをよりよく理解するために、Apache Mesosから始めて、Mesosphereの各重要なコンポーネントが何をするかを簡単に説明し、Mesosphereの文脈でどのように使用されているかを示します。
Apache Mesosの基本的な概要
Apache Mesosは、スケーラブルなサーバークラスタ上のアプリケーションの実行を簡素化するオープンソースのクラスタマネージャであり、Mesosphereシステムの心臓部である。
Mesosは、次のようなクラスターマネージャーに期待される多くの機能を提供します:
- 10,000以上のノードへのスケーラビリティ
- Linuxコンテナを介したタスクのリソース分離
- 効率的なCPUとメモリ対応のリソーススケジューリング
- Apache ZooKeeperを介した高可用性マスター
- クラスター状態を監視するためのWeb UI
Mesosアーキテクチャ
Mesosは、マスターとスレーブのデーモン、およびフレームワークで構成されるアーキテクチャを持っています。 ここでは、これらのコンポーネントの簡単な内訳と、いくつかの関連用語があります。
- Master daemon:マスターノード上で実行され、スレーブデーモンを管理します
- Slave daemon: マスターノード上で実行され、フレームワークに属するタスクを実行します
- フレームワーク:Mesosアプリケーションとも呼ばれ、リソースオファーを受信するためにマスターに登録するスケジューラと、スレーブ上でタスクを起動する一つ以上のエグゼキュータで構成されています。 Mesosフレームワークの例としては、Marathon、Chronos、Hadoop
- Offer:スレーブノードの利用可能なCPUとメモリリソースのリストがあります。 すべてのスレーブノードはマスターにオファーを送信し、マスターは登録されたフレームワークにオファーを提供します
- Task: フレームワークによってスケジュールされ、スレーブノードで実行される作業単位。 タスクは、bashコマンドやスクリプトからSQLクエリ、Hadoopジョブまで、何でもかまいません
- Apache ZooKeeper:マスターノードを調整するために使用されるソフトウェア
注:”ZK”はこの図のZooKeeperを表します。
このアーキテクチャにより、Mesosはクラスターのリソースをアプリケーション間で高レベルの粒度で共有できます。 特定のフレームワークに提供されるリソースの量は、マスターに設定されたポリシーに基づいており、フレームワークスケジューラはどのオファーを使用するかを決定 フレームワークスケジューラは、どのオファーを使用するかを決定すると、どのタスクを実行するかをMesosに指示し、Mesosは適切なスレーブ上でタスクを起動します。 タスクが完了し、消費されたリソースが解放されると、リソース提供サイクルが繰り返されるため、より多くのタスクをスケジュー
高可用性
クラスタ内のMesosマスターの高可用性は、Apache ZooKeeperを使用してマスターを複製してクォーラムを形成することによって有効になります。 ZooKeeperはまたマスターリーダーの選挙を調整し、奴隷およびフレームワークを含むMesosの部品のリーダーの検出を扱う。
可用性の高い構成には少なくとも三つのマスターノードが必要です-三つのマスターセットアップでは、単一のマスターに障害が発生した場合にクォーラムを維持できますが、回復力のある本番環境には五つのマスターノードが推奨され、二つのマスターノードをオフラインでクォーラムを維持することができます。
Apache Mesosの詳細については、公式ドキュメントページを参照してください。
Marathonの基本的な概要
Marathonは、長時間実行されるアプリケーションを起動するように設計されたMesosのフレームワークであり、Mesosphereでは、従来のinit
シ これには、高可用性、ノード制約、アプリケーションのヘルスチェック、スクリプトとサービス検出のためのAPI、使いやすいwebユーザーインターフェイスなど、クラスター化された環境でのアプリケーションの実行を簡素化する多くの機能が含まれています。 Mesosphere機能セットにスケーリング機能と自己修復機能を追加します。
Marathonは他のMesosフレームワークを起動するために使用することができ、通常のシェルで起動できる任意のプロセスを起動することもできます。 長時間実行されるアプリケーション用に設計されているため、実行中のスレーブノードに障害が発生した場合でも、起動したアプリケーションが実行され続Marathonの詳細については、GitHubのページをご覧ください。
Chronosの基本的な概要
Chronosは、もともとcron
の代替としてAirbnbによって開発されたMesosのフレームワークです。 このように、それはタスクのコレクションであるジョブのオーケストレーションを容易にするMesosのための完全な機能を備えた、分散、およびフォールトトレラントなスケジューラです。 これは、スケジュールのジョブのスクリプトを可能にするAPI、および使いやすさのためのweb UIが含まれています。
Mesosphereでは、Chronosは、スケジュールや別のジョブの完了などの他の条件に従って、アプリケーションを実行する別の方法を提供するため、Marathonを補完します。 また、複数のMesosスレーブノードでジョブをスケジュールすることができ、ジョブの失敗と成功に関する統計を提供します。Chronosの詳細については、GitHubページを参照してください。
HAProxyの基本的な概要
HAProxyは、人気のあるオープンソースのロードバランサーとリバースプロキシソリューションです。 これは、既知のホスト、通常はMesosマスターからMesosスレーブノードで実行されている実際のサービスにネットワークトラフィックをルーティングするためにMesosphereで使 Mesosのサービス検出機能を使用して、着信トラフィックを適切なバックエンドスレーブノードにルーティングするようにhaproxyを動的に設定できます。HAProxyの一般的な機能の詳細については、HAProxyの紹介をご覧ください。
結論
Mesosphereは、クラスタリングとスケーラビリティに重点を置いて設計されているため、なじみのないように見えるかもしれないサーバーインフラ それが基づいている各コンポーネントは、サーバーインフラストラクチャのクラスタリングとスケーリングを扱うときに一般的に直面している問題の解決策を提供し、Mesosphereはこれらのニーズに完全なソリューションを提供することを目指しています。
Mesosphereの基本を知ったので、このシリーズの次のチュートリアルをチェックしてください。 Ubuntu14.04で本番環境に対応した中間圏クラスタをセットアップする方法をお教えします!