42

私はApache Mesosについて頭を悩ませようとしていますが、いくつかの項目について説明が必要です。

Mesos についての私の理解では、Mesos はクラスター内のすべての物理/VM サーバー (「ノード」) にインストールされ、個々のノードをコンピューティング リソースの集合プールとして扱う Java API (何らかの方法で) を提供する実行可能ファイルです ( CPU/RAM/など)。したがって、Java API に対してコーディングするプログラムには、リソースの 1 つのセットのみが表示され、コードがどのように/どこにデプロイされるかについて心配する必要はありません。

そのため、ここでの理解が根本的に間違っている可能性があります (その場合は、訂正してください!)。しかし、私が目標を達成している場合、(Mesos が提供する) Java API を使用すると、Java クライアントはこれらのリソースをどのように利用できるのでしょうか?!? Mesos の具体的な例を教えてください。


アップデート

下の私のひどい絵を見てください。Mesos アーキテクチャを正しく理解していれば、3 台の物理サーバー ( phys01phys02およびphys03) のクラスターがあります。これらの各物理は、Ubuntu ホスト (または何でも) を実行しています。Xen などのハイパーバイザーを介して、1 つ以上の VM を実行できます。

私は Docker と CoreOS に興味があるので、この例ではそれらを使用しますが、コンテナ以外のセットアップにも同じことが当てはまると思います。

したがって、各 VM には CoreOS があります。各 CoreOS インスタンスで実行されているのは、Mesos 実行可能ファイル/サーバーです。クラスター内のすべての Mesos ノードは、その下にあるすべてを単一のリソース プールとして認識し、アーティファクトを任意に Mesos クラスターにデプロイできます。Mesos は、それらを実際にデプロイする CoreOS インスタンスを特定します。

Mesos の上で動作するのは、Marathon や Kubernetes などの「Mesos フレームワーク」です。Kubernetes 内で実行されているのは、さまざまな Docker コンテナー ( C1- C4) です。

ここに画像の説明を入力

Mesos のこの理解は多かれ少なかれ正しいですか?

4

1 に答える 1

32

あなたの要約はほぼ正しいですが、メソスが表すものの本質を反映していません。プロジェクトの背後にある会社である mesosphere のビジョンは、「データセンター オペレーティング システム」を作成することであり、mesos は、通常の OS のカーネルと同様に、そのカーネルです。API は Java に限定されず、C、C++、Java/Scala、または Python を使用できます。質問で説明したように mesos クラスターをセットアップし、リソースを使用したい場合は、通常、ワークロードをフレームワークで直接実行するのではなく、フレームワークを介してこれを行います。これは、これが複雑であることを意味するものではありません。これは、これを示すScala の非常に小さな例です。Apache SparkApache Cassandraなど、複数の一般的な分散データ処理システム用のフレームワークが存在します。. データ センター レベルのChronos a cron や、Docker ベースのアプリケーションを実行できるMarathonなどの他のフレームワークがあります。

アップデート:

はい、mesos はクラスター内の配置を処理します。これはカーネルが行うことであり、限られたリソースのスケジューリングと管理です。ただし、あなたがスケッチしたセットアップは、いくつかの明白な疑問を提起します。

mesos の下のレイヤー: CoreOS に mesos をインストールすることは可能ですが、面倒だと思います。これは、mesos を実行するための典型的なシナリオではありません。通常は、可能な限り最下位のレイヤー (この場合は Ubuntu の上) に移動されます。CoreOSハイパーバイザーを実行する正当な理由があることを願っています。

メソ上のレイヤー: Kubernetes はフレームワークとして利用できず、メソスフィアはそれに多くの労力を費やしているようです。ただし、特にスケジューリングに関しては、機能面で部分的に重複していることは間違いありません。コンテナーに基づいて基本的なワークロードをスケジュールする場合は、Marathonを使用するか、将来的にはAuroraを使用することをお勧めします。ですから、ここでも、この取り決めについて正当な理由があることを願っています。補足: Kubernetes は Marathon に似ており、アプローチがより広く、かなり独断的です。

于 2015-01-23T22:13:09.580 に答える