Рубрики
Без рубрики

Экспериментируя с Apache Mesos HTTP API для удовольствия и получения прибыли

Автор оригинала: FreeCodeCapm Team.

Марко Массензио

Apache Mesos – это инструмент, используемый в производстве при масштабных услугах, таких как Twitter и Airbnb. Вот его учебник Описание:

Это первая из трех из трех статей, которые показывают, как настроить Vagrant на основе Vagrange Apache Mesos Test/Development Environment на вашем ноутбуке, как запустить ноутбук Python против HTTP API и как запускать контейнеры Docker на бегущий агент Вис

Эта серия – расширенная (и обновленная) версия говорить Я дал на Мезоскон Европа 2015 Обновлено для Apache Mesos 1.0.0, которое только что было выпущено (август 2016 года) – вы также можете найти Слайды там.

Этот пост довольно варенье, и потребует от вас знакомства с некоторыми концепциями вокруг контейнеров, VMS и MESOS. Но я найду время, чтобы показать все промежуточные шаги (отсюда, 3 частями). Это должно быть легко следовать, даже если вы никогда не использовали бродяжественные, мезосы или даже ноутбуки Jupyter раньше.

Я рекомендую вам сначала иметь основное знакомство с Python и обрабатывающим HTTP-запросы и ответы, так как мы не будем делать эти детали там.

Весь код доступен на репозитории ZK-Mesos Git :

git clone git@github.com:massenz/zk-mesos.git

И вы также можете просмотреть Readme Отказ

Начиная

Для того, чтобы следовать, вам нужно будет клонировать репозиторий (как показано выше) и установить VirtualBox и Бродячий Отказ Следуйте инструкциям на своих соответствующих сайтах, и вы будете в курсе и запущении.

Я также рекомендую быстро сканировать бродную документацию. Знание бродяга за пределами ` Vagrant Up`| На самом деле не требуется получить максимальную отдачу от этой серии, но это может помочь, если вы застряли (или хотели бы поэкспериментировать и улучшить нашу Vagrantfile ).

Если вы не знакомы с Apache Mesos Я рекомендую взглянуть на сайт проекта. Я рекомендую читать Мезос в действии (Обратите внимание, что я был одним из рецензентов рукописи).

Мы будем не Будьте строить мезосы от источника здесь, но вместо этого используют Мезосферы пакеты Отказ Вам не нужно их скачать. Вагрантиль Будет автоматически загружать и установить на VMS.

Чтобы запустить ноутбук Python, мы воспользуемся преимуществами Jupyter Пакеты и используйте Виртуальский Чтобы запустить весь наш код. Virtualenv не является строго необходимым, но помешает вам возобновить вашу систему Python.

Если вы никогда не использовали Виртуальский перед:

$ sudo pip install virtualenv

А затем создать и запустить Виртуальский :

$ cd zk-mesos $ virtualenv mesos-demo$ source mesos-demo/bin/activate $ pip install -r requirements.txt

Наконец, убедитесь, что вы можете запустить и загрузить ноутбук Jupyter:

$ jupyter notebook

Это должно автоматически открыть ваш браузер и указать на http://localhost: 8888 Отказ Отсюда вы можете выбрать Ноутбуки/DEMO-API.IPYNB файл. Не запускайте это, но если он появится, он подтвердит, что ваша настройка Python просто отлично.

Строительство и установка Apache Mesos

Именно здесь красота бродяжественных сияет во всей его славе. Установка Apache Mesos Master и Agent не являются тривиальными задачами, но в нашем случае это просто вопрос:

$ cd vagrant $ vagrant up

Убедитесь, что вы в том же каталоге, что и Вагрантиль При выдаче любой из бродных команд или оно будет жаловаться на это.

Стоит отметить, что мы строим Два Бродные коробки, так что любая команда будет работать на оба Если не указано. Чтобы избежать этого, вы можете указать имя VM после команды. Например, чтобы SSH на агент:

$ vagrant ssh agent

Это должно войти в систему в этой коробке. Оттуда вы можете исследовать, эксперимент и диагностировать любые проблемы.

Vagrant up Команда займет некоторое время, чтобы выполнить, но в конечном итоге он должен привести к вашей виртуальной коробке иметь два VMS, названных соответственно Mesos-Master и мезос-агент Отказ Кстати, вам никогда не нужно использовать VirtualBox для управления их. Все задачи могут быть предприняты через бродные команды. Но вы можете управлять им вручную, если это необходимо или желать.

Как только VMS построен, убедитесь, что вы можете получить доступ к Mesos HTTP-интерфейс AT:

http://192.168.33.10:5050

Вы также должны увидеть один агент, который работает, доступный либо через Master UI.

Или непосредственно на:

http://192.168.33.11:5051/state

Обратите внимание, что агент работает не только на другом IP-адресе, чем мастером, но и на другом порту (5051 вместо 5050).

Посмотрите в Vagrant/run-Agent.sh, чтобы увидеть несколько флагов командной строки, которую мы используем для запуска агента (и в Run-master.sh для Master).

Работник зоопарка

Стоит отметить, что мы также используем экземпляр Zookeeker (для лидеровных выборов и координации магистра/агентов) на Mesos-Master VM, внутри контейнера докера: отчасти потому, что мы можем, но и показать, насколько легко сделать это, используя контейнеры.

Эта одна строка (в run-master.sh ), предоставит вам идеально хороший экземпляр ZK (хотя и катастрофически ненадежный в производственной среде, где вы хотите запускать не менее 3-5 узлов, По крайней мере, на физически отдельных машинах/стойках):

docker run -d --name zookeeper -p 2181:2181 -p 2888:2888 \    -p 3888:3888 jplock/zookeeper:3.4.8

И поскольку мы обнаруживаем порты (в частности, 2181) к хозяину VM, мы можем подключиться к нему через утилиту Zookeeker CLI ( zkcli.sh ) и исследуйте его. С вашей машины разработки (вам нужно сначала скачать Zookeeker), вы можете использовать:

$ zkCli.sh -server 192.168.33.10:2181...[zk: 192.168.33.10:2181(CONNECTED) 4] get /mesos/vagrant/json.info_0000000000
# Formatted for better readability:{"address":  { "hostname": "mesos-master",    "ip":"192.168.33.10",    "port":5050  },  "hostname":"mesos-master",  "id":"7eb34f10-b07c-4921-aece-bbaece09dfd1",  "ip":169978048,  "pid":"master@192.168.33.10:5050",  "port":5050,  "version":"1.0.0"}
cZxid = 0xbctime = Sat Aug 27 14:00:44 PDT 2016...

Вот как агенты получают информацию о том, как подключиться к главному узлу.

_000000 Суффикс увеличивается каждый раз, когда новый лидер избирается, поэтому в зависимости от того, как долго был запущен экземпляр ZK, и был ли возобновить мастер, он может стать что-то вроде _0000005. Это « эфемерный узел» в парнике зоофидера.

В этой записи выше, стоит отметить, что «PID» – LibProcess Уникальный идентификатор и «IP» в качестве сжатого 4-байтового представления OCTET IPV4 OCTET CADUREPLE. Эти устаревшие поля и могут в конечном итоге быть удалены.

Заворачивать

Теперь вы являетесь счастливым владельцем 2-узла 2-узла Apache Mesos. Добро пожаловать в той же лиге, что и волшебники по производству Twitter и Airbnb.

В части 2 мы будем запускать нашу ноутбук Python против Master API и примут предложения агента, чтобы запустить контейнер докера.

Если у вас есть время, давайте прыгнем и выучите Как подключиться к Mesos Master и принимайте предложения ресурсов Отказ

Первоначально опубликовано codetrips.com 27 августа 2016 года.