Какая разница между Apache Mesos и Google Kubernetes

В чем же разница между Apache Mesos и Google Kubernetes? Я понимаю, что это программное обеспечение для управления кластерным сервером. Может ли кто-нибудь уточнить, где основные отличия - когда будет предпочтительной рамка?

Почему вы хотите использовать Кубернетес на вершине мезосферы?

Ответ 1

Kubernetes - проект с открытым исходным кодом, который предоставляет возможности управления кластерами "стиля Google" в мире виртуальных машин или "по металлу". Он отлично работает с современными средами операционной системы (такими как CoreOS или Red Hat Atomic), которые предлагают легкие вычислительные "узлы", которые управляются для вас. Он написан в Голанге и имеет легкий, модульный, портативный и расширяемый. Мы (команда Kubernetes) работаем с рядом различных технологических компаний (в том числе с Mesosphere, которые купили проект с открытым исходным кодом Mesos), чтобы установить Kubernetes как стандартный способ взаимодействия с вычислительными кластерами. Идея состоит в том, чтобы воспроизвести шаблоны, которые мы видим, люди, которые должны создавать кластерные приложения, основываясь на нашем опыте в Google. Некоторые из этих концепций включают в себя:

  • pods - способ группировки контейнеров вместе
  • контроллеры репликации - способ обработки жизненного цикла контейнеров
  • метки - способ поиска и запроса контейнеров и
  • services - набор контейнеров, выполняющих общую функцию.

Таким образом, только с помощью Kubernetes вы будете иметь что-то простое, легко встающее и работающее, портативное и расширяемое, которое добавляет "кластер" в качестве существительного к тому, что вы управляете самым легким способом. Запустите приложение в кластере и перестаньте беспокоиться об отдельной машине. В этом случае кластер представляет собой гибкий ресурс, подобный виртуальной машине. Это логический вычислительный блок. Поверните, используйте его, измените его размер, быстро и легко отпустите.

С Mesos существует довольно много совпадений с точки зрения основного видения, но продукты находятся в совершенно разных точках их жизненного цикла и имеют разные сладкие пятна. Mesos - это распределенное системное ядро, которое объединяет множество разных машин в логический компьютер. Он родился для мира, где у вас много физических ресурсов для создания большого кластера статических вычислений. Самое замечательное в том, что множество современных масштабируемых приложений для обработки данных хорошо работают на Mesos (Hadoop, Kafka, Spark), и это хорошо, потому что вы можете запускать их все в одном и том же базовом пуле ресурсов вместе с новыми приложениями, Это несколько более тяжелый вес, чем проект Кубернетес, но становится легче и легче управлять благодаря работе таких людей, как мезосфера.

Теперь интересно, что Mesos в настоящее время адаптируется для добавления множества концепций Kubernetes и поддержки API Kubernetes. Таким образом, это будет шлюз для получения дополнительных возможностей для вашего приложения Kubernetes (мастер высокой доступности, более совершенная семантика планирования, возможность масштабирования до очень большого количества узлов), если они вам понадобятся, и хорошо подходит для выполнения производственных нагрузок (Kubernetes все еще находится в альфа-состоянии).

Когда его спросят, я склонен сказать:

  • Кубернете - отличное место для начала, если вы новичок в мире кластеризации; это самый быстрый, легкий и легкий способ отбросить шины и начать экспериментировать с кластерным развитием. Он предлагает очень высокий уровень переносимости, поскольку он поддерживается многими различными поставщиками (Microsoft, IBM, Red Hat, CoreOs, MesoSphere, VMWare и т.д.).

  • Если у вас есть существующие рабочие нагрузки (Hadoop, Spark, Kafka и т.д.), Mesos предоставляет вам структуру, позволяющую перемежать эти рабочие нагрузки друг с другом и смешивать некоторые из новых материалов, включая приложения Kubernetes.

  • Mesos дает вам управляющий клапан, если вам нужны возможности, которые еще не реализованы сообществом в рамках Kubernetes.

Ответ 2

Оба проекта направлены на то, чтобы упростить развертывание и управление приложениями внутри контейнеров в вашем центре обработки данных или в облаке.

Для развертывания приложений поверх Mesos можно использовать Marathon или Kubernetes для Mesos.

Marathon - это кластерная система инициализации и управления для запуска сервисов Linux в cgroups и контейнерах Docker. Марафон имеет ряд различных функций развертывания канареек и является очень зрелым проектом.

Марафон работает поверх Mesos, который является масштабируемым, проверенным в бою и гибким менеджером ресурсов. Марафон, как доказано, масштабируется и работает во многих производственных средах.

Стек технологий Mesos и Mesosphere обеспечивает облачную среду для запуска существующих рабочих нагрузок Linux, но также предоставляет собственную среду для создания новых распределенных систем.

Mesos - это ядро распределенных систем с полным API для программирования непосредственно в центре обработки данных. Он абстрагирует базовое оборудование (например, "голое железо" или виртуальные машины) и просто раскрывает ресурсы. Он содержит примитивы для написания распределенных приложений (например, Spark изначально был приложением Mesos, Chronos и т.д.), Таких как передача сообщений, выполнение задач и т.д. Таким образом, стали возможны совершенно новые приложения. Apache Spark - один из примеров новой (в Mesos jargon) фреймворка, который был изначально создан для Mesos. Это позволило действительно быстро разрабатывать - разработчикам Spark не нужно было беспокоиться о сети для распределения задач между узлами, поскольку это основной примитив в Mesos.

Насколько мне известно, Kubernetes сегодня не используется внутри Google в производственных развертываниях. Для производства Google использует Omega/Borg, который намного больше похож на модель Mesos/Marathon. Однако самое замечательное использование Mesos в качестве основы заключается в том, что как Kubernetes, так и Marathon могут работать поверх него.

Больше ресурсов о марафоне:

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

Видео: https://www.youtube.com/watch?v=hZNGST2vIds

Ответ 3

Кубернетес и Мезос - это состязание, совершенное на небесах. Kubernetes позволяет абстракции Pod (группа совместно расположенных контейнеров) вместе с подписями Pod для обнаружения сервисов, балансировки нагрузки и управления репликацией. Mesos обеспечивает мелкозернистые распределения ресурсов для контейнеров по узлам кластера и может заставить Kubernetes хорошо играть с другими фреймворками, работающими на тех же ресурсах кластера.

из readme of kubernetes-mesos

Ответ 4

Mesos и Kubernetes могут использоваться как для управления кластером машин, так и для абстрагирования аппаратного обеспечения.

Mesos, по дизайну, не предоставляет вам планировщик (чтобы решить, где и когда запускать процессы и что делать, если процесс выходит из строя), вы можете использовать что-то вроде Marathon или Chronos или написать свой собственный.

Kubernetes выполнит планирование для вас из коробки и может использоваться как планировщик для Mesos (пожалуйста, поправьте меня, если я ошибаюсь здесь!), где вы можете использовать их вместе. Mesos может иметь несколько планировщиков, разделяющих один и тот же кластер, поэтому теоретически вы можете запускать кубернеты и хроны вместе на одном и том же оборудовании.

Супер упростительно: если вы хотите контролировать, как планируются ваши контейнеры, пойдите в Mesos, иначе Kubernetes скалы.

Ответ 5

Мне нравится это короткое видео здесь учебный материал mesos

с голыми металлическими кластерами вам нужно будет создавать стеки, такие как HDFS, SPARK, MR и т.д., поэтому, если вы запускаете задачи, связанные с ними, используя только управление кластерным металлом, будет много холодного времени запуска.

с мезосом, вы можете установить эти сервисы поверх голых металлов, и вы можете избежать появления этих базовых услуг. Это то, что мезос делает хорошо. и могут быть использованы кубернетами, возвышающимися над ним.

Ответ 6

"Я понимаю, что оба являются программным обеспечением для управления кластерами серверов".

Это утверждение не совсем верно. Kubernetes не управляет кластерами серверов, он организует контейнеры так, чтобы они работали вместе с минимальными трудностями и рисками. Kubernetes позволяет вам определять части вашего приложения как "модули" (один или несколько контейнеров), которые доставляются "развертываниями" или "наборами демонов" (и несколькими другими) и открываются внешним службам через сервисы. Однако Kubernetes не управляет самим кластером (есть инструменты, которые могут предоставлять, настраивать и масштабировать кластеры для вас, но они не являются частью самого Kubernetes).

Mesos, с другой стороны, приближается к "управлению кластером" в том смысле, что он может контролировать, что и где выполняется, но не только с точки зрения планирования контейнеров. Mesos также управляет автономным программным обеспечением, работающим на серверах кластера. Несмотря на то, что Mesos, в основном, используется в качестве альтернативы Kubernetes, он может легко работать с Kubernetes, поскольку во многих областях функциональные возможности перекрываются, Mesos может делать больше (но с перекрывающимися частями Kubernetes имеет тенденцию быть лучше).