Многоузловое развёртывание с помощью Rancher и Docker Machine в Ubuntu 16.04
Ubuntu | Комментировать запись
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: Docker, Docker Machine, OAuth, Rancher, Ubuntu 16.04