1. ホーム
  2. docker

[解決済み] DC/OS上のDockerコンテナにおけるMarathonとKubernetesとDocker Swarmの比較

2022-10-24 14:18:52

質問

DC/OS上でDockerコンテナを実行する際に、MarathonとChronos、Docker Swarm、Kubernetesのどれを使うべきかの長所と短所を知りたいのです。

例えば、KubernetesよりもMarathon/Chronosを使用する方が良い場合、またその逆はいつですか?

今はほとんど実験中ですが、夏以降にこれらのサービスの1つを本番で使い始めたいと考えています。Docker Swarmは、その頃までに本番環境に対応できるかどうか分からないので、対象外かもしれません。

Docker Swarmの良いところは、基本的にDockerのコマンドを使うだけなので、全く新しいことを学ぶ必要がないところです。私たちはすでに docker-compose を使っていますが、これはDocker Swarmでも(少なくとも理論的には)そのまま使えるので、大きなプラスになると思います。Docker Swarm に関する私の主な懸念は、本番でシステムを実行するために必要なすべてのユースケースをカバーできるかどうかということです。

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

Mesos上の各コンテナオーケストレーションフレームワークのユニークな点を分解してみます。

使用方法 Docker Swarm(ドッカースワーム であれば

使用方法 Kubernetes-Mesos であれば

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

使用方法 マラソン であれば

  • Docker または非 Docker の長時間稼働するアプリ/サービスを起動したい場合。
  • 制約ベースのスケジューリングにMesosの属性を使用したい。
  • アプリケーショングループと依存関係を使用して、関連するサービスを起動、拡張、またはアップグレードしたい。
  • 健全性チェックを使用して、健全でないサービスを自動的に再起動したり、健全でないデプロイメント/アップグレードをロールバックしたい。
  • サービス検出のために HAProxy または Consul を統合したい。
  • Web UI または REST API を使用してアプリを起動および監視したい。
  • Mesos を念頭に置いて最初から構築されたフレームワークを使用したい。

使用する クロノス であれば

  • 終了が予想されるDockerタスクまたは非Dockerタスクを起動したい場合。
  • 特定の時間/スケジュールでタスクを実行するようにスケジュールしたい(a la cron ).
  • 依存タスクの DAG ワークフローをスケジュールしたい。
  • Web UI または REST API を使用してジョブを起動および監視したい。
  • Mesos を念頭に置いて最初から構築されたフレームワークを使用したい。