私はApache Mesosについて頭を悩ませようとしていますが、いくつかの項目について説明が必要です。
Mesos についての私の理解では、Mesos はクラスター内のすべての物理/VM サーバー (「ノード」) にインストールされ、個々のノードをコンピューティング リソースの集合プールとして扱う Java API (何らかの方法で) を提供する実行可能ファイルです ( CPU/RAM/など)。したがって、Java API に対してコーディングするプログラムには、リソースの 1 つのセットのみが表示され、コードがどのように/どこにデプロイされるかについて心配する必要はありません。
そのため、ここでの理解が根本的に間違っている可能性があります (その場合は、訂正してください!)。しかし、私が目標を達成している場合、(Mesos が提供する) Java API を使用すると、Java クライアントはこれらのリソースをどのように利用できるのでしょうか?!? Mesos の具体的な例を教えてください。
アップデート
下の私のひどい絵を見てください。Mesos アーキテクチャを正しく理解していれば、3 台の物理サーバー ( phys01
、phys02
およびphys03
) のクラスターがあります。これらの各物理は、Ubuntu ホスト (または何でも) を実行しています。Xen などのハイパーバイザーを介して、1 つ以上の VM を実行できます。
私は Docker と CoreOS に興味があるので、この例ではそれらを使用しますが、コンテナ以外のセットアップにも同じことが当てはまると思います。
したがって、各 VM には CoreOS があります。各 CoreOS インスタンスで実行されているのは、Mesos 実行可能ファイル/サーバーです。クラスター内のすべての Mesos ノードは、その下にあるすべてを単一のリソース プールとして認識し、アーティファクトを任意に Mesos クラスターにデプロイできます。Mesos は、それらを実際にデプロイする CoreOS インスタンスを特定します。
Mesos の上で動作するのは、Marathon や Kubernetes などの「Mesos フレームワーク」です。Kubernetes 内で実行されているのは、さまざまな Docker コンテナー ( C1
- C4
) です。
Mesos のこの理解は多かれ少なかれ正しいですか?