Marathon vs Kubernetes vs Docker Swarm en DC / OS con contenedores Docker


Estoy buscando algunos pros y contras de si ir con Marathon y Chronos, Docker Swarm o Kubernetes cuando se ejecutan contenedores Docker en DC/OS.

Por ejemplo, ¿cuándo es mejor usar Marathon/Chronos que Kubernetes y viceversa?

En este momento estoy principalmente en la experimentación, pero con suerte vamos a empezar a utilizar uno de estos servicios en la producción después del verano. Esto puede descalificar a Docker Swarm ya que no estoy seguro de si estará listo para entonces.

Lo que me gusta de Docker Swarm es que es esencialmente solo "comandos Docker" y no tienes que aprender algo completamente nuevo. Ya estamos usando docker-compose y eso funcionará fuera de la caja con Docker Swarm (al menos en teoría), por lo que sería una gran ventaja. Mi principal preocupación con Docker Swarm es si cubrirá todos los casos de uso necesarios para ejecutar un sistema en producción.

Author: Michael Hausenblas, 2015-03-22

2 answers

Trataré de desglosar los aspectos únicos de cada marco de orquestación de contenedores en Mesos.

Use Docker Swarm si:

Use Kubernetes-Mesos si:

  • Desea lanzar Pods K8s, que son grupos de contenedores co-programados y co-ubicados juntos, compartiendo recursos.
  • Desea iniciar un servicio junto a uno o más contenedores de sidekick (por ejemplo, log archiver, metrics monitor) que viven junto al contenedor principal.
  • Desea utilizar el control de detección de servicios, equilibrio de carga y replicación basado en etiquetas de K8s.
  • Véase http://kubernetesio.blogspot.com/2015/04/kubernetes-and-mesosphere-dcos.html

Use Marathon si:

  • Desea iniciar aplicaciones/servicios de ejecución prolongada de Docker o no Docker.
  • Desea utilizar atributos Mesos para la programación basada en restricciones.
  • Desea utilizar Grupos de aplicaciones y Dependencias para iniciar, escalar o actualizar servicios relacionados.
  • Desea utilizar las comprobaciones de estado para reiniciar automáticamente los servicios no saludables o revertir implementaciones/actualizaciones no saludables.
  • Desea integrar HAProxy o Consul para la detección de servicios.
  • Desea iniciar y supervisar aplicaciones a través de una interfaz de usuario web o API REST.
  • Desea utilizar un framework construido desde el principio con Mesos en mente.

Use Chronos si:

  • Desea iniciar tareas acoplables o no acoplables que se espera que salgan.
  • Desea programar una tarea para que se ejecute en un horario/horario específico (a la cron).
  • Desea programar un flujo de trabajo DAG de tareas dependientes.
  • Desea iniciar y supervisar trabajos a través de una interfaz de usuario web o API REST.
  • Desea utilizar un framework construido desde el principio con Mesos en mente.
 162
Author: Adam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-23 06:06:23

Aunque está un poco desactualizado, puede ser útil leer Cuál es la diferencia entre Mesos de Apache y Kubernetes de Google, para obtener algunos de los conceptos básicos correctos. También, tenga en cuenta que Mesos opera en un nivel diferente que Kubernetes/Marathon/Chronos. Por último, pero no menos importante, ver Docker Swarm + Mesos de Timothy Chen, teniendo en cuenta que Marathon y Swarm pueden operar simultáneamente en el mismo cúmulo de Mesos.

 14
Author: Michael Hausenblas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:55:09