Kubernetes - это проект с открытым исходным кодом, который привносит возможности управления кластерами в стиле Google в мир виртуальных машин или в сценарии «на металле». Он очень хорошо работает с современными средами операционных систем (такими как CoreOS или Red Hat Atomic), которые предлагают облегченные вычислительные «узлы», которые управляются для вас. Он написан на Golang и является легким, модульным, портативным и расширяемым. Мы (команда Kubernetes) работаем с рядом различных технологических компаний (включая Mesosphere, которая курирует проект с открытым исходным кодом Mesos), чтобы установить Kubernetes в качестве стандартного способа взаимодействия с вычислительными кластерами. Идея состоит в том, чтобы воспроизвести шаблоны, которые, как мы видим, нужны людям для создания кластерных приложений, основываясь на нашем опыте работы в Google. Некоторые из этих концепций включают в себя:
- стручки - способ группировки контейнеров
- контроллеры репликации - способ управления жизненным циклом контейнеров
- метки - способ поиска и запроса контейнеров, и
- услуги - набор контейнеров, выполняющих общую функцию.
Таким образом, с одним только Kubernetes у вас будет что-то простое, легко настраиваемое, переносимое и расширяемое, которое добавляет «кластер» в качестве существительного к вещам, которыми вы управляете, самым легким способом. Запустите приложение в кластере и перестаньте беспокоиться об отдельном компьютере. В этом случае кластер является гибким ресурсом, как и виртуальная машина. Это логическая вычислительная единица. Включите его, используйте его, измените его размер, выключите его быстро и легко.
С Мезосом существует довольно много совпадений с точки зрения основного видения, но продукты находятся на совершенно разных этапах своего жизненного цикла и имеют разные приятные места. Mesos - это ядро распределенных систем, которое объединяет множество разных машин в логический компьютер. Он был рожден для мира, где у вас много физических ресурсов для создания большого статического вычислительного кластера. Самое замечательное в этом то, что многие современные масштабируемые приложения для обработки данных хорошо работают на Mesos (Hadoop, Kafka, Spark), и это приятно, потому что вы можете запускать их все в одном базовом пуле ресурсов вместе с вашими пакетными приложениями нового поколения. , Он несколько тяжелее, чем проект Kubernetes, но его становится все легче и легче благодаря работе таких людей, как Mesosphere.
Что действительно интересно, так это то, что Mesos в настоящее время адаптируется для добавления многих концепций Kubernetes и поддержки API Kubernetes. Таким образом, он станет шлюзом для получения дополнительных возможностей для вашего приложения Kubernetes (мастер высокой доступности, более сложная семантика планирования, возможность масштабирования до очень большого количества узлов), если они вам понадобятся, и хорошо подходит для выполнения производственных рабочих нагрузок (Kubernetes). все еще находится в альфа-состоянии).
Когда меня спрашивают, я склонен говорить:
Kubernetes - отличное место для старта, если вы новичок в мире кластеризации; это самый быстрый, простой и легкий способ запустить шины и начать экспериментировать с кластерно-ориентированной разработкой. Он предлагает очень высокий уровень мобильности, поскольку поддерживается многими различными провайдерами (Microsoft, IBM, Red Hat, CoreO, MesoSphere, VMWare и т. Д.).
Если у вас есть существующие рабочие нагрузки (Hadoop, Spark, Kafka и т. Д.), Mesos предоставит вам среду, которая позволит вам чередовать эти рабочие нагрузки друг с другом и смешивать некоторые новые элементы, включая приложения Kubernetes.
Mesos дает вам запасной клапан, если вам нужны возможности, которые еще не реализованы сообществом в рамках Kubernetes.
Оба проекта направлены на то, чтобы упростить развертывание и управление приложениями внутри контейнеров в вашем центре обработки данных или в облаке.
Для развертывания приложений поверх Mesos можно использовать Marathon или Kubernetes для Mesos.
Marathon - это кластерная система инициализации и управления для запуска сервисов Linux в cgroups и контейнерах Docker. Марафон имеет ряд различных функций развертывания канареек и является очень зрелым проектом.
Марафон работает поверх Mesos, который является масштабируемым, проверенным в бою и гибким менеджером ресурсов. Marathon доказал свою масштабность и работает во многих производственных средах.
Стек технологий 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
источник
из файла readme of kubernetes-mesos
источник
Mesos и Kubernetes могут использоваться для управления кластером машин и абстрагирования оборудования.
Mesos по своей природе не предоставляет вам планировщик (чтобы решить, где и когда запускать процессы и что делать в случае сбоя процесса), вы можете использовать что-то вроде Marathon или Chronos или написать свой собственный.
Kubernetes будет выполнять планирование для вас из коробки, и может быть использован в качестве планировщика для Mesos (пожалуйста, исправьте меня, если я не прав здесь!), Где вы можете использовать их вместе. В Mesos может быть несколько планировщиков, совместно использующих один и тот же кластер, поэтому теоретически вы можете запускать kubernetes и chronos вместе на одном оборудовании.
Супер просто: если вы хотите контролировать, как распределяются ваши контейнеры, выберите Mesos, иначе Kubernetes рулит.
источник
Мне нравится это короткое видео здесь мезо учебный материал
с кластерами без метала вам потребуется порождать стеки, такие как HDFS, SPARK, MR и т. д., поэтому, если вы запускаете связанные с ними задачи, используя только управление кластерами без метала, у вас будет много холодного запуска.
с помощью mesos вы можете установить эти сервисы поверх «голых металлов» и избежать времени запуска этих базовых сервисов. Это то, что mesos делает хорошо. и может быть использован kubernetes, строящим сверху этого.
источник
«Я понимаю, что оба являются программным обеспечением для управления кластерами серверов».
Это утверждение не совсем верно. Kubernetes не управляет кластерами серверов, он организует контейнеры так, чтобы они работали вместе с минимальными трудностями и рисками. Kubernetes позволяет вам определять части вашего приложения как «модули» (один или несколько контейнеров), которые доставляются «развертываниями» или «наборами демонов» (и несколькими другими) и открываются внешним службам через сервисы. Однако Kubernetes не управляет самим кластером (есть инструменты, которые могут предоставлять, настраивать и масштабировать кластеры для вас, но они не являются частью самого Kubernetes).
С другой стороны, Mesos приближается к «управлению кластерами» в том смысле, что он может контролировать, где и где работает, а не только с точки зрения планирования контейнеров. Mesos также управляет автономным программным обеспечением, работающим на серверах кластера. Несмотря на то, что он в основном используется в качестве альтернативы Kubernetes, Mesos может легко работать с Kubernetes, поскольку во многих областях функциональные возможности перекрываются, Mesos может делать больше (но с перекрывающимися частями Kubernetes имеет тенденцию быть лучше).
источник