Docker-Swarm、Kubernetes、Mesos、Core-OS Fleet 質問する

Docker-Swarm、Kubernetes、Mesos、Core-OS Fleet 質問する

私はこれらすべてについて比較的初心者ですが、リストされているテクノロジーを明確に把握するのに苦労しています。

これらはすべて異なる問題を解決しようとしていますが、共通点もあります。共通点と相違点を理解したいと思います。いくつかの組み合わせが非常に適していると思われますが、もしそうなら、それらは何ですか?

私はそれらのいくつかを質問とともにリストしていますが、誰かがそれらすべてを詳細にリストし、質問に答えてくれるとありがたいです。

  1. Kubernetes と Mesos:

    このリンク

    ApacheのMesosとGoogleのKubernetesの違いは何ですか?

    違いについてはよく理解できますが、Kubernetes を Mesos 上で実行する必要がある理由が理解できません。2 つのオープンソース ソリューションを統合することと関係があるのでしょうか?

  2. Kubernetes と Core-OS Fleet:

    Kubernetes を使用する場合、Fleet は必須ですか?

  3. Docker-Swarm は上記のすべてにどのように適合するのでしょうか?

ベストアンサー1

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

Mesos と Kubernetes は主に、クラスター化されたアプリケーションを実行するという同様の問題を解決することを目的としていると思いますが、両者には異なる歴史があり、問題解決へのアプローチも異なります。

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

対照的に、Kubernetes は、コンテナから分散アプリケーションを構築するための環境として根本から設計されました。Kubernetes には、コア プリミティブとしてレプリケーションとサービス検出のプリミティブが含まれていますが、Mesos では、そのようなプリミティブはフレームワークを介して追加されます。Kubernetes の主な目的は、分散システムを構築、実行、管理するためのシステムです。

Fleet は、低レベルのタスク ディストリビューターです。これは、クラスター システムのブートストラップに役立ちます。たとえば、CoreOS は、Kubernetes クラスターを起動するために、クラスター内のマシンに Kubernetes エージェントとバイナリを配布するためにこれを使用します。これは、実際には同じ分散アプリケーション開発の問題を解決することを目的としたものではなく、クラスターの systemd/init.d/upstart のようなものだと考えてください。Kubernetes を実行する場合は必須ではなく、他のツール (Salt、P​​uppet、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 にご参加ください。

おすすめ記事