1. ホーム
  2. cluster-computing

[解決済み] Docker-Swarm、Kubernetes、Mesos、Core-OSフリート

2022-04-26 22:48:58

質問

私は比較的初心者なのですが、リストアップされた技術の中で明確なイメージを持つことができず困っています。

しかし、これらはすべて異なる問題を解決しようとするものですが、共通するものもあります。何が共通で何が違うのか、理解したいですね。いくつかの組み合わせがうまくいく可能性がありますが、その場合はどのような組み合わせになるのでしょうか?

質問と一緒にいくつか挙げていますが、どなたか全部を詳しく挙げて、質問に答えてくださると嬉しいです。

  1. KubernetesとMesosの比較。

    このリンク

    <ブロッククオート

    ApacheのMesosとGoogleのKubernetesの違いとは?

    は、その違いをよく理解していますが、なぜKubernetesがMesosの上で動作しなければならないのか、理解できていません。2つのオープンソースのソリューションが一緒になったからということでしょうか?

  2. Kubernetes vs Core-OS Fleet。

    kubernetesを使用する場合、fleetは必要ですか?

  3. Docker-Swarmは上記の中でどのように位置づけられるのでしょうか?

どのように解決するのか?

情報公開:私はKubernetesのリードエンジニアです

MesosとKubernetesは、クラスタ化されたアプリケーションの実行という同じような問題の解決を大きく目指しており、歴史も問題解決へのアプローチも異なっていると思います。

Mesosは、非常に汎用的なスケジューリングと、複数の異なるスケジューラーをプラグインすることにエネルギーを注いでいます。 つまり、HadoopやMarathonのようなシステムを、同じスケジューリング環境で共存させることができるのです。 Mesosは、コンテナの実行にはあまり重点を置いていません。 Mesosは、コンテナに広く関心が集まる前から存在しており、コンテナをサポートするために部分的にリファクタリングされている。

これに対し、Kubernetesはコンテナから分散アプリケーションを構築するための環境として、一から設計されました。 レプリケーションやサービスディスカバリーのためのプリミティブがコアとして含まれており、Mesosではフレームワークを介してそうしたものが追加されている。 Kubernetesの第一の目標は、分散システムを構築、実行、管理するためのシステムなのです。

Fleetは、低レベルのタスクディストリビューターです。 例えば、CoreOSはkubernetesのエージェントとバイナリをクラスタ内のマシンに配布し、kubernetesクラスタを立ち上げるためにこれを使用しています。 これは分散アプリケーション開発の問題を解決するためのものではなく、クラスタのsystemd/init.d/upstartのようなものだと考えてください。 kubernetesを実行する必要はなく、他のツール(例:Salt, Puppet, Ansible, Chef, ...)を使って同じバイナリ配布を実現することができます。

Swarmは、既存のDocker APIを拡張し、マシンのクラスタを単一のDocker APIのように見せようというDocker社の取り組みである。 根本的に、Googleや他の場所での経験から、ノードAPIはクラスタAPIとして不十分であることが分かっています。 これに関する議論の束をここで見ることができます。 https://github.com/docker/docker/pull/8859 とこちらをご覧ください。 https://github.com/docker/docker/issues/8781

お役に立てれば幸いです。 もっと話したいなら、IRC @ #google-containers に参加してください。