В чем разница между Apache Mesos и Google Kubernetes


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

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

5 311

5 ответов:

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

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

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

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

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

когда на вопрос, я, как правило, говорю:

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

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

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

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

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

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

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

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

Mesos-это ядро распределенных систем с полным API для программирования непосредственно против центра обработки данных. Оно абстрагирует базовое оборудование (например, голый металл или виртуальные машины) и просто предоставляет ресурсы. Он содержит примитивы для написания распределенных приложений (например, Spark изначально был приложением Mesos, Chronos и т. д.), таких как передача сообщений, выполнение задач и т. д. Таким образом, становятся возможными совершенно новые приложения. Apache Spark является одним из примеров новой (на жаргоне Mesos) структуры, которая была построена первоначально для 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

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

С readme of kubernetes-mesos

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

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

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

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

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

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

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