Marathon vs Cubernes vs Docker Roy on DC / OS with docker containers

I'm looking for some pros and cons: whether to go with Marathon and Chronos, Docker Swarm or Kubernetes when running Docker containers on DC / OS.

For example, when is it better to use a marathon / chronos than Kubernetes, and vice versa?

Now I am mainly experimenting, but I hope we will begin to use one of these services in production after the summer. This may disqualify Docker Swarm, as I'm not sure if it will be ready by then.

What I like about Docker Swarm is that itโ€™s just a โ€œdocker teamโ€ and you donโ€™t need to learn something completely new. We already use docker-compose , and this will work out of the box with Docker Swarm (at least in theory), so this will be a big plus. My main problem with Docker Swarm is that it will cover all the use cases needed to run the system in production.

+80
docker docker-swarm kubernetes marathon dcos
Mar 22 '15 at 19:26
source share
2 answers

I will try to break down the unique aspects of each container orchestration structure on Mesos.

Use Docker Swarm if:

Use Kubernetes-Mesos if:

  • You want to launch K8s Pods, which are groups of containers co-planned and co-located, sharing resources.
  • You want to start the service next to one or more sidekick containers (for example, log archiver, metric monitors) that live next to the parent container.
  • You want to use K8s-based label discovery services, load balancing management, and replication management.
  • See http://kubernetesio.blogspot.com/2015/04/kubernetes-and-mesosphere-dcos.html

Use Marathon if:

  • You want to run Docker or non-Docker applications with a long lifespan.
  • You want to use the Mesos attributes for constraint-based planning.
  • You want to use application groups and dependencies to launch, scale, or update related services.
  • You want to use health checks to automatically restart unhealthy services or roll back unhealthy deployments / updates.
  • You want to integrate HAProxy or Consul for service discovery.
  • You want to run and control applications through the web interface or REST API.
  • You want to use a framework built from the start using Mesos.

Use Chronos if:

  • You want to run Docker or non-Docker tasks that should exit.
  • You want to schedule a task at a specific time / schedule (a la cron ).
  • You want to schedule the workflow of DAG dependent tasks.
  • You want to run and track tasks via the web interface or REST API.
  • You want to use a framework built from the start using Mesos.
+150
Apr 23 '15 at 6:06
source share

Although this is a bit outdated, it might be useful to read What is the Difference Between Apache Mesos and Google Kubernetes to Obtain Some of the Fundamental Rights. Also note that Mesos works at a different level than Kubernetes / Marathon / Chronos. Last but not least, see Timothy Chen's Docker Swarm + Mesos , bearing in mind that Marathon and Swarm can work simultaneously in the same Mesos cluster.

+12
Mar 23 '15 at 4:03
source share



All Articles