108

DC/OS で Docker コンテナーを実行する場合、Marathon と Chronos、Docker Swarm、または Kubernetes のいずれを使用するかについて、いくつかの長所と短所を探しています。

たとえば、どのような場合に Marathon/Chronos を使用した方が Kubernetes よりも優れているでしょうか? またその逆の場合は?

現在、私は主に実験に取り組んでいますが、うまくいけば、これらのサービスのいずれかを夏以降に本番環境で使用できるようになることを願っています。それまでに本番環境に対応できるかどうかわからないため、Docker Swarm は失格になる可能性があります。

Docker Swarm について私が気に入っているのは、それが本質的に単なる "Docker コマンド" であり、まったく新しいことを学ぶ必要がないことです。私たちはすでに使用docker-composeしており、Docker Swarm ですぐに使用できるので (少なくとも理論上は)、大きなプラスになるでしょう。Docker Swarm に関する私の主な関心事は、運用環境でシステムを実行するために必要なすべてのユース ケースをカバーできるかどうかです。

4

2 に答える 2

171

Mesos の各コンテナー オーケストレーション フレームワークの固有の側面を分析してみます。

次の場合はDocker Swarmを使用します。

次の場合は Kubernetes-Mesosを使用します。

  • K8s Pod を起動します。これは、リソースを共有する、共同スケジュールされ、一緒に配置されるコンテナのグループです。
  • 親コンテナーの隣にある 1 つ以上のサイドキック コンテナー (ログ アーカイバー、メトリック モニターなど) と共にサービスを起動したい。
  • K8s ラベルベースのサービス検出、負荷分散、およびレプリケーション制御を使用したい。
  • http://kubernetesio.blogspot.com/2015/04/kubernetes-and-mesosphere-dcos.htmlを参照してください。

次の場合はマラソンを使用します。

  • Docker または非 Docker の長期実行アプリ/サービスを起動したい。
  • 制約ベースのスケジューリングに Mesos 属性を使用したい。
  • アプリケーション グループと依存関係を使用して、関連サービスを起動、スケーリング、またはアップグレードします。
  • ヘルス チェックを使用して、異常なサービスを自動的に再起動したり、異常な展開やアップグレードをロールバックしたりしたい。
  • サービス検出のために HAProxy または Consul を統合したい。
  • Web UI または REST API を介してアプリを起動および監視したい。
  • Mesos を念頭に置いて最初から構築されたフレームワークを使用したい。

次の場合はChronosを使用します。

  • 終了すると予想される Docker または非 Docker タスクを起動したい。
  • 特定の時間/スケジュール (a la cron) で実行するようにタスクをスケジュールします。
  • 依存タスクの DAG ワークフローをスケジュールする必要があります。
  • Web UI または REST API を介してジョブを起動および監視したい。
  • Mesos を念頭に置いて最初から構築されたフレームワークを使用したい。
于 2015-04-23T06:06:23.597 に答える
15

少し古くなっていますが、Wh​​at's the difference between Apache's Mesos and Google's Kubernetesを読んで、いくつかの基本事項を正しく理解すると役立つ場合があります。また、Mesos は Kubernetes/Marathon/Chronos とは異なるレベルで動作することに注意してください。最後になりましたが、Timothy Chen によるDocker Swarm + Mesosを参照してください。Marathonと Swarm は同じ Mesos クラスターで同時に動作できることに注意してください。

于 2015-03-23T04:03:02.877 に答える