Apache の Mesos と Google の Kubernetes の違いは何ですか? どちらもサーバー クラスタ管理ソフトウェアであることは理解しています。主な違いがどこにあるのか誰でも詳しく説明できますか?どのフレームワークが好まれるのはいつですか?
Mesosphere の上で Kubernetesを使用する理由は何ですか?
Apache の Mesos と Google の Kubernetes の違いは何ですか? どちらもサーバー クラスタ管理ソフトウェアであることは理解しています。主な違いがどこにあるのか誰でも詳しく説明できますか?どのフレームワークが好まれるのはいつですか?
Mesosphere の上で Kubernetesを使用する理由は何ですか?
どちらのプロジェクトも、データセンターまたはクラウドのコンテナー内でアプリケーションを簡単にデプロイおよび管理できるようにすることを目的としています。
Mesos 上にアプリケーションを展開するには、Mesos に Marathon または Kubernetes を使用できます。
Marathon は、cgroup および Docker コンテナーで Linux サービスを実行するためのクラスター全体の初期化および制御システムです。Marathon には多数の異なるカナリア デプロイ機能があり、非常に成熟したプロジェクトです。
Marathon は Mesos の上で実行されます。Mesos は、拡張性が高く、実戦でテスト済みの柔軟なリソース マネージャーです。Marathon は拡張性が証明されており、多くの運用環境で実行されます。
Mesos および Mesosphere テクノロジー スタックは、既存の Linux ワークロードを実行するためのクラウドのような環境を提供しますが、新しい分散システムを構築するためのネイティブ環境も提供します。
Mesos は、データセンターに対して直接プログラミングするための完全な API を備えた分散システム カーネルです。基盤となるハードウェア (ベア メタルや VM など) を抽象化し、リソースを公開するだけです。これには、メッセージ パッシング、タスク実行などの分散アプリケーション (たとえば、Spark はもともと Mesos アプリ、Chronos など) を作成するためのプリミティブが含まれています。したがって、まったく新しいアプリケーションが可能になります。Apache Spark は、もともと Mesos 用に構築された新しい (Mesos 専門用語で呼ばれる) フレームワークの一例です。これにより、非常に迅速な開発が可能になりました。これは Mesos のコア プリミティブであるため、Spark の開発者はノード間でタスクを分散するネットワークについて心配する必要がありませんでした。
私の知る限り、Kubernetes は現在、Google の本番環境で使用されていません。Google は本番用に、Mesos/Marathon モデルにより近い Omega/Borg を使用しています。ただし、Mesos を基盤として使用することの優れた点は、Kubernetes と Marathon の両方をその上で実行できることです。
マラソンに関するその他のリソース:
Mesos と Kubernetes の両方を使用して、マシンのクラスターを管理し、ハードウェアを抽象化できます。
Mesos は設計上、(いつどこでプロセスを実行し、プロセスが失敗した場合に何をするかを決定するための) スケジューラを提供しません。
Kubernetes はすぐに使用できるようにスケジューリングを行い、Mesos のスケジューラーとして使用できます (ここで間違っている場合は訂正してください!)。Mesos は同じクラスターを共有する複数のスケジューラーを持つことができるため、理論的には同じハードウェアで kubernetes と chronos を一緒に実行できます。
非常に単純化して言えば、コンテナのスケジュール方法を制御したい場合は Mesos を選び、それ以外の場合は Kubernetes が最適です。
私はこの短いビデオが好きですmesos学習教材
ベア メタル クラスターでは、HDFS、SPARK、MR などのスタックを生成する必要があります。したがって、ベア メタル クラスター管理のみを使用してこれらに関連するタスクを起動すると、コールド スタート時間が長くなります。
mesos を使用すると、これらのサービスをベア メタルの上にインストールでき、これらのベース サービスの起動時間を回避できます。これは mesos が得意とすることです。その上に kubernetes を構築することで利用できます。
「どちらもサーバー クラスタ管理ソフトウェアであることは理解しています。」
この声明は完全に真実ではありません。Kubernetes はサーバー クラスターを管理するのではなく、最小限の手間と露出でコンテナーが連携するようにコンテナーを調整します。Kubernetes を使用すると、アプリケーションの一部を「デプロイメント」または「デーモン セット」(およびその他のいくつか) によって配信され、サービスを介して外部の世界に公開される「ポッド」(1 つまたは複数のコンテナー) として定義できます。ただし、Kubernetes はクラスター自体を管理しません (クラスターをプロビジョニング、構成、スケーリングできるツールはありますが、それらは Kubernetes 自体の一部ではありません)。
一方、Mesos は、コンテナーのスケジューリングに関してだけでなく、何がどこで実行されているかを制御できるという点で、「クラスター管理」に近づきます。Mesos は、クラスター サーバーで実行されているスタンドアロン ソフトウェアも管理します。Mesos は主に Kubernetes の代替として使用されますが、多くの領域で機能が重複しているため、Mesos は Kubernetes と簡単に連携できます (ただし、重複部分では Kubernetes の方が優れている傾向があります)。