who that runtimes que pivotal not large foundry files does cli apps able cloud cluster-computing mesosphere kubernetes

cloud - that - ¿Cuál es la diferencia entre el Mesos de Apache y los Kubernetes de Google?



who uses cloud foundry (6)

¿Cuál es exactamente la diferencia entre el Mesos de Apache y los Kubernetes de Google? Entiendo que ambos son software de administración de clúster de servidores. ¿Alguien puede explicar dónde están las principales diferencias? ¿Cuándo sería el marco preferido?

¿Por qué querrías usar Kubernetes encima de la Mesosfera ?


Kubernetes y Mesos son una combinación hecha en el cielo. Kubernetes habilita la abstracción Pod (grupo de contenedores de ubicación conjunta), junto con etiquetas Pod para descubrimiento de servicios, equilibrio de carga y control de replicación. Mesos proporciona las asignaciones de recursos de grano fino para los pods entre los nodos en un clúster y puede hacer que Kubernetes juegue muy bien con otros marcos que se ejecutan en los mismos recursos del clúster.

del archivo Léame de kubernetes-mesos


"Entiendo que ambos son software de administración de clúster de servidores".

Esta afirmación no es del todo cierta. Kubernetes no gestiona los clústeres de servidores, organiza los contenedores para que funcionen juntos con un mínimo de molestias y exposición. Kubernetes le permite definir partes de su aplicación como "pods" (uno o más contenedores) que son entregados por "despliegues" o "conjuntos de demonios" (y algunos otros) y expuestos al mundo exterior a través de servicios. Sin embargo, Kubernetes no administra el clúster en sí mismo (existen herramientas que pueden aprovisionar, configurar y escalar clústeres por usted, pero no forman parte de Kubernetes).

Mesos, por otro lado, se acerca a la "gestión de clústeres", ya que puede controlar lo que se está ejecutando dónde, pero no solo en términos de programación de contenedores. Mesos también gestiona software independiente que se ejecuta en los servidores del clúster. Aunque se usa principalmente como una alternativa a Kubernetes, Mesos puede trabajar fácilmente con Kubernetes, ya que mientras la funcionalidad se superpone en muchas áreas, Mesos puede hacer más (pero en las partes superpuestas, Kubernetes tiende a ser mejor).


Ambos proyectos apuntan a facilitar la implementación y administración de aplicaciones dentro de contenedores en su centro de datos o nube.

Para implementar aplicaciones sobre Mesos, uno puede usar Marathon o Kubernetes para Mesos.

Marathon es un sistema de control e inicio de todo el clúster para ejecutar servicios de Linux en cgroups y contenedores Docker. Marathon tiene varias características diferentes de implementación canaria y es un proyecto muy maduro.

Marathon corre sobre Mesos, que es un administrador de recursos altamente escalable, probado en batalla y flexible. Se ha comprobado que Marathon escala y se ejecuta en muchos entornos de producción.

La pila de tecnología Mesos y Mesosphere proporciona un entorno similar a la nube para ejecutar cargas de trabajo Linux existentes, pero también proporciona un entorno nativo para construir nuevos sistemas distribuidos.

Mesos es un núcleo de sistemas distribuidos, con una API completa para programar directamente contra el centro de datos. Extrae el hardware subyacente (p. Ej., Metal desnudo o máquinas virtuales) y simplemente expone los recursos. Contiene primitivas para escribir aplicaciones distribuidas (p. Ej., Spark era originalmente una aplicación Mesos, Chronos, etc.) como Pasar mensajes, Ejecución de tareas, etc. Por lo tanto, se hacen posibles aplicaciones completamente nuevas. Apache Spark es un ejemplo de un nuevo marco (llamado en la jerga de Mesos) que se creó originalmente para Mesos. Esto permitió un desarrollo realmente rápido: los desarrolladores de Spark no tenían que preocuparse por las redes para distribuir tareas entre los nodos, ya que este es un elemento primitivo central en Mesos.

Que yo sepa, Kubernetes no se usa dentro de Google en las implementaciones de producción de hoy. Para la producción, Google usa Omega / Borg, que es mucho más similar al modelo Mesos / Marathon. Sin embargo, lo mejor de usar Mesos como base es que tanto Kubernetes como Marathon pueden correr sobre él.

Más recursos sobre Marathon:

https://mesosphere.github.io/marathon/

Video: https://www.youtube.com/watch?v=hZNGST2vIds


Kubernetes es un proyecto de código abierto que trae capacidades de administración de clúster ''estilo Google'' al mundo de las máquinas virtuales, o escenarios ''en el metal''. Funciona muy bien con entornos modernos de sistemas operativos (como CoreOS o Red Hat Atomic) que ofrecen ''nodos'' informáticos livianos que se administran por usted. Está escrito en Golang y es ligero, modular, portátil y extensible. Nosotros (el equipo de Kubernetes) estamos trabajando con varias compañías tecnológicas diferentes (incluida Mesosphere, encargada del proyecto de código abierto de Mesos) para establecer a Kubernetes como la forma estándar de interactuar con los clústeres informáticos. La idea es reproducir los patrones que vemos que las personas necesitan para crear aplicaciones de clúster basadas en nuestra experiencia en Google. Algunos de estos conceptos incluyen:

  • vainas : una forma de agrupar contenedores
  • Controladores de replicación : una forma de manejar el ciclo de vida de los contenedores
  • etiquetas : una forma de buscar y consultar contenedores, y
  • servicios : un conjunto de contenedores que realizan una función común.

Entonces, con Kubernetes solo, tendrá algo que es simple, fácil de poner en funcionamiento, portátil y extensible que agrega ''cluster'' como un sustantivo a las cosas que maneja de la manera más liviana posible. Ejecute una aplicación en un clúster y deje de preocuparse por una máquina individual. En este caso, el clúster es un recurso flexible al igual que una VM. Es una unidad de computación lógica. Suba, use, cambie el tamaño, baje rápida y fácilmente.

Con Mesos, existe una buena cantidad de superposición en términos de la visión básica, pero los productos se encuentran en puntos bastante diferentes en su ciclo de vida y tienen diferentes puntos clave. Mesos es un núcleo de sistemas distribuidos que une muchas máquinas diferentes en una computadora lógica. Nació para un mundo donde posee muchos recursos físicos para crear un gran clúster de computación estática. Lo mejor de esto es que muchas aplicaciones modernas de procesamiento de datos escalables funcionan bien en Mesos (Hadoop, Kafka, Spark) y es agradable porque puedes ejecutarlas todas en el mismo grupo de recursos básicos, junto con tus aplicaciones empaquetadas de contenedores de la nueva era. . Es algo más pesado que el proyecto Kubernetes, pero cada vez es más fácil de manejar gracias al trabajo de personas como Mesosphere.

Ahora lo que se vuelve realmente interesante es que Mesos se está adaptando actualmente para agregar muchos de los conceptos de Kubernetes y para admitir la API de Kubernetes. Por lo tanto, será una puerta de entrada para obtener más capacidades para su aplicación Kubernetes (maestro de alta disponibilidad, semántica de programación más avanzada, capacidad de escalar a una gran cantidad de nodos) si los necesita, y es muy adecuado para ejecutar cargas de trabajo de producción (Kubernetes todavía está en un estado alfa).

Cuando me preguntan, tiendo a decir:

  1. Kubernetes es un excelente lugar para comenzar si eres nuevo en el mundo de la agrupación; Es la forma más rápida, fácil y liviana de patear los neumáticos y comenzar a experimentar con el desarrollo orientado al clúster. Ofrece un nivel muy alto de portabilidad, ya que es compatible con muchos proveedores diferentes (Microsoft, IBM, Red Hat, CoreOs, MesoSphere, VMWare, etc.).

  2. Si tiene cargas de trabajo existentes (Hadoop, Spark, Kafka, etc.), Mesos le brinda un marco que le permite intercalar esas cargas de trabajo entre sí y mezclar algunas de las cosas nuevas, incluidas las aplicaciones de Kubernetes.

  3. Mesos le ofrece una válvula de escape si necesita capacidades que la comunidad aún no ha implementado en el marco de Kubernetes.


Me gusta este breve video aquí material de aprendizaje mesos

con clústeres de metal desnudo, necesitaría generar pilas como HDFS, SPARK, MR, etc., por lo que si inicia tareas relacionadas con estos utilizando solo la administración de clúster de metal desnudo, habrá mucho tiempo de arranque frío.

con mesos, puede instalar estos servicios sobre los metales desnudos y puede evitar el tiempo de activación de esos servicios básicos. Esto es algo que mesos hace bien. y puede ser utilizado por kubernetes construyendo encima de él.


Mesos y Kubernetes se pueden usar para administrar un grupo de máquinas y abstraer el hardware.

Mesos, por diseño, no le proporciona un planificador (para decidir dónde y cuándo ejecutar procesos y qué hacer si el proceso falla), puede usar algo como Marathon o Chronos, o escribir el suyo propio.

Kubernetes hará la programación para usted de inmediato, y puede usarse como un programador para Mesos (¡corríjame si me equivoco aquí!), Que es donde pueden usarlos juntos. Mesos puede tener múltiples programadores que comparten el mismo clúster, por lo que, en teoría, podría ejecutar kubernetes y cronos juntos en el mismo hardware.

Súper simplista: si quieres controlar cómo están programados tus contenedores, elige Mesos, de lo contrario, Kubernetes es genial.