回答:
まず第一に、Rancherには実際にKubernetes と Mesos の両方の実装が含まれています。ただし、DockerのSwarmに大きく基づいたCattleという独自のシステムを作成しました。これについては、Rancherのセクションで触れます。
第二に、それぞれが同様の基本機能(負荷分散、リソース分離など)を提供するため、重要でない限り、これらの共通機能の違いに焦点を当てるのではなく、それらがどのように異なるかを詳しく調べます。
非常にパフォーマンス重視で、クラウドストレージオーケストレーションも備えています(Mesosにはない機能ですが、プラグインはおそらくあります)。個々のコンテナが必要とするリソース使用量の自動スケーリングを可能にするAPIオプションがあります(コンテナが他のコンテナに強くヒットしていない場合は逆になります)。
Kubernetesで重要なことは、他のコンテナオーケストレーションソフトウェアとは異なり、包括的な構成やあらゆる種類の包括的な自己修復を提供しないことです。代わりに、アプリレベルで簡単なロールバックシステムを使用して複数のアプリを継続的に展開することに焦点を当てています(その結果、使用時にマイクロサービスを調べたい場合があります)。
各アプリは小さなもので、個別に展開/構成できます。彼らはドキュメントで、Kubernetesは従来のPaaS(サービスとしてのプラットフォーム)システムではなく、仮想ハードウェアまたはデータベース用のミドルウェアがなく、アプリ自体を構築しないと述べています。(彼ら自身が言うように)手動のコンテナオーケストレーションの必要性をなくし、代わりにターゲットアプリの状態に向かって継続的に押すことでプロセスを自動化するように設計されています。
Kubernetesと比較したモノリシック。個々のサービスの管理も可能ですが、個々のサービスよりも全体像に焦点を当てています。Spark、Hadoopなどの組み込みミドルウェアを提供します。Mesosを最適に使用するには、簡単に拡張できるように設計されているため、多くのプラグインが必要です。
アプリケーションの管理をきめ細かく制御する必要がある場合(目的のプラグインがある場合や、ない場合はビルドするチームメンバーがある場合)、Mesosを使用することをお勧めします。
それ自体が前の2つのスーパーセットであり、両方の実装を備えているという点で、潜在的に最良のオプションです。また、管理ソフトウェアの複雑さを増すことはめったに良いことではなく、予期しない問題につながる可能性があるため、これはマイナス面と見なされることもあります。
Rancherには、ワンクリックで展開できるアプリケーションカタログがありますが、Kubernetesにはその設計哲学のためにありません。ただし、RancherにはKubernetesが実装されているため、これらの機能がKubernetesにない場合はRancherを使用できます。
牛は、関連するサービスをグループ化するスタックシステムに基づいています。また、同じ名前のDockerサービスに似た機能であるRancher Composeも収容されています。これはおそらく牛の最も興味深い部分であり、残りはかなり標準的なものです(ただし、シークレット管理はまだベータ版です)。Docker Composeの経験がある場合は、ここでそれを読んでください(私はそうではないので、おそらくそれについて書くのに最適な人ではありません)。
リソース:「Kubernetesとは」、「Rancherの概要」、「mesos.apache.org:「Mesosとは」」