Многоузловое развёртывание с помощью Rancher и Docker Machine в Ubuntu 16.04

Rancher поддерживает оркестровку на основе Docker Machine, благодаря чему вы можете быстро создавать хосты Docker у облачных провайдеров или в собственном дата-центре. Rancher позволяет запускать вычислительные узлы непосредственно через пользовательский интерфейс. Это пусть и небольшой, но чрезвычайно важный шаг, который обеспечивает возможность создавать и управлять многоузловыми (а в скором будущем – и многооблачными) развертываниями с помощью единого интерфейса.

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

Требования

  • Доступ к программному интерфейсу.
  • Сервер Ubuntu 16.04 (1Гб оперативки минимум).
  • Предварительно установленная платформа Docker 1.12 (инструкции по установке можно найти в статье Установка и использование Docker в Ubuntu 16.04).
  • Аккаунт GitHub, который нужен для настройки Rancher.

1: Сервер для Rancher

Чтобы приложение Rancher могло управлять хостами и контейнерами Docker, нужно создать для него отдельный сервер.

Чтобы платформа Rancher запускалась вместе с сервером, используйте скрипт:

#!/bin/bash
docker run -d --name rancher-server -p 80:8080 rancher/server

Убедитесь, что новый сервер работает и поддерживает Rancher:

ssh root@your_ip_address

Запросите список контейнеров Docker:

docker ps

Следующий результат подтверждает, что Rancher работает:

ec5492f1b628        rancher/server      "/usr/bin/entry /usr/"   15 seconds ago      Up 13 seconds       3306/tcp, 0.0.0.0:80->8080/tcp   rancher-server

Если команда не выдала эту строку, подождите пару минут и попробуйте снова запустить её. Убедившись, что Rancher работает, можете покинуть сервер.

2: Настройка аутентификации Rancher

Откройте в браузере http://your_server_ip/ и запустите интерфейс Rancher. На данный момент сервер Rancher находится в открытом доступе, потому нужно настроить аутентификацию. Для этого можно использовать OAuth.

В верхней части страницы (возле ADMIN) вы увидите предупреждение:

Access Control is not configured

Выберите Access Control в меню ADMIN. В качестве метода аутентификации по умолчанию выбран Github; чтобы зарегистрировать новое приложение в GitHub, следуйте инструкциям на странице.

Затем скопируйте Client ID и Client Secret со страницы Github и вставьте в соответствующие поля в интерфейсе Rancher. Нажмите Save.

Под Test and enable authentication найдите и кликните Authenticate with Github, выберите Authorize application во всплывающем окне. После этого страница перезапустится, инструкции по настройке OAuth будут заменены разделом Configure Authorization. Добавьте других пользователей, у которых должен быть доступ к Rancher. Изменив настройки авторизации, нажмите кнопку Save.

3: Создание среды

Среда Rancher позволяет группировать хосты. Rancher предоставляет стандартную среду Default, но лучше создать свою. Найдите в верхней части экрана Default и перейдите по этой ссылке, чтобы попасть в меню Environments. Затем нажмите Manage Environments и Add Environment.

Укажите название среды, добавьте её описание. Оставьте остальные параметры по умолчанию и нажмите Create. С помощью меню проекта выберите новую среду.

Теперь попробуйте запустить хосты в новой среде.

4: Запуск нод Rancher

Теперь нужно запустить несколько нод Rancher. Для этого выберите Hosts в меню Infrastructure и нажмите кнопку Add Host.

Экран Add Host предлагает выбрать провайдера: Custom, Amazon EC2, DigitalOcean, Azure или Packet. Опция Custom предоставляет список команд, которые нужны для ручного запуска нод Rancher на сервере с предварительно установленным Docker. Остальные опции используются для запуска вычислительных узлов в соответствующих облачных системах.

Выберите провайдера и заполните появившуюся форму.

  • Server Name: введите любое имя (например, host01).
  • Quantity: оставьте 1. Если вы увеличите это значение, программа автоматически создаст несколько хостов и выберет для них имена.
  • Access Token: токен доступа к программному интерфейсу.
  • Image: выберите в списке образ, который нужно запустить (Ubuntu 16.04.1 x64). Не все опции в списке работают – некоторые из них несовместимы с Rancher.
  • Size: объём памяти сервера (в данном случае 1Гб).
  • Region: географический регион, в котором создан сервер.

В завершение нажмите Create. Rancher использует Docker Machine, чтобы создать указанный сервер и установить на него Docker. Также Rancher запустит на новом сервере rancher-agent.

В течение нескольких минут новый вычислительный узел появится в интерфейсе Rancher. Также вы получите базовую информацию о хосте (IP-адрес, сведения о процессоре, памяти и т.п.). Повторите инструкции этого раздела  несколько раз, чтобы запустить остальные ноды.

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

5: Мониторинг и масштабирование развёртывания

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

Если нода использует большую часть памяти или ресурсов процессора, запустите несколько дополнительных нодов.К примеру, если нода использует 80% памяти, нужно запустить еще несколько нод, чтобы распределить нагрузку. Как раз в таких ситуациях очень полезна интеграция docker-machine: вы можете быстро отреагировать и загрузить больше вычислительных нод, не выходя из интерфейса Rancher.

После устранения перенагрузки можно отключить дополнительные ноды. Для этого откройте Hosts, найдите ненужный хост и нажмите Deactivate.

Позже можно включить ноды, нажав Activate, или удалить их при помощи Delete. Все эти опции находятся в том же меню.

Заключение

Теперь вы умеете запускать, мониторить и отключать вычислительные узлы с помощью Rancher. Чтобы узнать, как использовать Rancher в качестве балансировщика нагрузки, обратитесь к документации проекта.

Tags: , , , ,

Добавить комментарий