Введение в мезосферу

Что такое мезосфера

Mesosphere - это программное решение, которое расширяет возможности управления кластерами Apache Mesos с помощью дополнительных компонентов, чтобы обеспечить новый и новый способ управления серверной инфраструктурой. Комбинируя несколько компонентов с Mesos, таких как Marathon и Chronos, Mesosphere позволяет легко масштабировать приложения, абстрагируясь от многих проблем, связанных с масштабированием.

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

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

Базовый обзор Apache Mesos

Apache Mesos - это менеджер кластеров с открытым исходным кодом, который упрощает запуск приложений на масштабируемом кластере серверов и является сердцем системы Mesosphere.

Mesos предлагает множество функций, которые можно ожидать от менеджера кластера, таких как:

  • Масштабируемость до 10 000 узлов

  • Изоляция ресурсов для задач через контейнеры Linux

  • Эффективное планирование ресурсов процессора и памяти

  • Высокодоступный мастер через Apache ZooKeeper

  • Веб-интерфейс для мониторинга состояния кластера

Мезос Архитектура

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

  • * Главный демон *: работает на главном узле и управляет подчиненными демонами

  • * Slave daemon *: работает на главном узле и выполняет задачи, которые принадлежат фреймворкам

  • * Framework *: также известная как приложение Mesos, состоит из scheduler, который регистрируется на главном сервере для получения ресурса offers, и одного или нескольких executors, который запускает tasks на подчиненных устройствах. Примеры сред Mesos включают в себя Marathon, Chronos и Hadoop

  • * Предложение *: список доступных ресурсов ЦП и памяти подчиненного узла. Все подчиненные узлы отправляют предложения ведущему, а ведущий предоставляет предложения зарегистрированным платформам.

  • * Задача *: единица работы, которая запланирована платформой и выполняется на подчиненном узле. Задача может быть любой, от команды или скрипта bash, до запроса SQL, до задания Hadoop

  • * Apache ZooKeeper *: программное обеспечение, которое используется для координации главных узлов

изображение: https: //assets.digitalocean.com/articles/mesosphere/mesos_architecture.png [Архитектура Mesos]

  • Примечание: * «ZK» представляет ZooKeeper на этой диаграмме.

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

Высокая доступность

Высокая доступность мастеров Mesos в кластере обеспечивается за счет использования Apache ZooKeeper для репликации мастеров с образованием quorum. ZooKeeper также координирует выбор главного лидера и управляет обнаружением лидера среди компонентов Mesos, включая подчиненных и фреймворки.

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

Чтобы узнать больше об Apache Mesos, посетите its страницу официальной документации.

Базовый обзор марафона

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

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

Чтобы узнать больше о Марафоне, посетите страницу GitHub its.

Базовый обзор Chronos

Chronos - это фреймворк для Mesos, который изначально был разработан Airbnb вместо + cron +. Таким образом, это полнофункциональный, распределенный и отказоустойчивый планировщик для Mesos, который облегчает оркестровку заданий, представляющих собой наборы заданий. Он включает в себя API, который позволяет создавать сценарии планирования заданий, и веб-интерфейс для простоты использования.

В Mesosphere Chronos дополняет Marathon, поскольку он предоставляет другой способ запуска приложений в соответствии с расписанием или другими условиями, такими как выполнение другого задания. Он также способен планировать задания на нескольких подчиненных узлах Mesos и предоставляет статистику по сбоям и успехам заданий.

Чтобы узнать больше о Chronos, посетите страницу GitHub its.

Базовый обзор HAProxy

HAProxy - это популярное решение для балансировки нагрузки с открытым исходным кодом и обратного прокси. Он может использоваться в Mesosphere для маршрутизации сетевого трафика от известных хостов, обычно мастеров Mesos, к реальным службам, которые работают на подчиненных узлах Mesos. Возможности обнаружения сервисов в Mesos могут использоваться для динамической настройки HAProxy для маршрутизации входящего трафика на соответствующие внутренние подчиненные узлы.

Чтобы узнать больше об общих возможностях HAProxy, посетите наш Introduction to HAProxy.

Заключение

В Mesosphere используются парадигмы серверной инфраструктуры, которые могут показаться незнакомыми, так как она была разработана с упором на кластеризацию и масштабируемость, но, надеюсь, теперь вы хорошо понимаете, как она работает. Каждый из компонентов, на которых он основан, предоставляет решения проблем, с которыми обычно сталкиваются при работе с кластеризацией и масштабированием серверной инфраструктуры, а Mesosphere стремится предоставить полное решение этих потребностей.

Теперь, когда вы знакомы с основами мезосферы, посмотрите следующий урок из этой серии. Он научит вас https://www.digitalocean.com/community/tutorials/how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04 как настроить готовый к работе продукт. Мезосферный кластер на Ubuntu 14.04]!

Related