Розгортаємо Rancher в InfoboxCloud: перенесену інфраструктуру з веб-інтерфейсом для Docker

Docker змінив вигляд сучасного підходу до розміщення додатків і сервісів користувача в хмарах, представивши переносні контейнери для додатків. Переносимість означає відсутність залежності від конкретної хмарної інфраструктури (vendor lock-in), просту міграцію додатків між хмарами, просте розгортання, зниження витрат на підтримку і обслуговування. Маючи контейнеризованное переноситься додаток ви можете сфокусуватися на збільшенні продуктивності програми, доступності та інших важливих особливостях додатків. Існуючі технології типу Kubernetes, Swarm, Panamax, Helios, Clocker, Dies і т. д. розвивають технології поверх Docker і роблять свій вагомий внесок у розвиток екосистеми.



Rancher фокусується зовсім на іншій проблемі. Уявіть, що ви розгортаєте додаток в Docker в хмарі. Інфраструктура переносима, а службові сервіси типу відмовостійких балансировщиков навантаження та інших рішень — немає. Якщо вам знадобилося смигрировать в інше хмара де відрізняється дана функціональність — виникнуть проблеми.

Мета Rancher – створення переносимих інфраструктурних сервісів навколо Docker, включаючи еластичне блочне сховище, віртуальні мережі, відмовостійкий балансувальник навантаження, групи безпеки, моніторинг, сервіси баз даних та багато іншого. Все це ви можете переносити між власними серверами і хмарами різних виробників, використовувати декілька регіонів хмарного провайдера одночасно. А раз не виникає залежність на рівні інфраструктури, ви можете вибирати хмара за співвідношенням надійності, продуктивності, ціни і довіри.

До речі, вихідні тексти Rancher доступні під ліцензією Apache 2.0.

У цій статті ми розглянемо інфраструктуру Rancher детальніше і встановимо Rancher в InfoboxCloud.
Як отримати тестову версію InfoboxCloud безкоштовно — читайте в кінці статті.

Перед використанням Docker, Compose і Rancher буде корисно ознайомитися зі статтями:
Використовуємо Docker і не хвилюємося про vendor-lock
Занурюємося в Docker: Dockerfile і комунікація між контейнерами
Огляд нововведень Docker Engine з 1.0 до 1.7. Введення в Docker Compose


Основні можливості

  1. Приватні мережі. Можливість створення приватних SDN мереж для кожного оточення, що дозволяють безпечні комунікації між контейнерами між хостами і хмарами.
  2. Балансування навантаження. Вбудований еластичний балансувальник навантаження для розподілу трафіку між контейнерами або сервісами. Сервіс балансування навантаження може працювати навіть між різними регіонами хмари.
  3. Управління сховищем. Підтримка снепшотов і бекапів томів Docker, можливість бекапить стан контейнерів і стан сервісів.
  4. Виявлення сервісів. Розподілений DNS сервіс виявлення з вбудованим моніторингом здоров'я, який дозволяє контейнерів автоматично реєструвати себе як сервіси і динамічно знаходити інші в мережі.
  5. Апгрейди сервісів. Можливість простого апгрейда сервісів за допомогою клонування і переспрямування запитів до сервісу. Це дозволяє перевірити оновлений сервіс перед направленням на нього трафіку.
  6. Управління ресурсами. Підтримка Docker Machine, інструменту для провижнинга хостів. Можливість моніторингу ресурсів хостів і управління розгортанням контейнерів.
  7. Спільне використання та управління користувачами. Можливість створення безлічі користувачів інфраструктури і спільної роботи над підтримкою життєвого циклу сервісів. Можливість створення окремих середовищ для розробки, тестування та промислового використання з можливістю спільного використання ресурсів.


Інтерфейси для роботи з Rancher

Є три основних способи роботи з Rancher:
  1. Користувачі можуть працювати з Rancher з допомогою Docker CLI і API. Rancher – це не ще один шар оркестрации і управління, що приховує від користувачів функціональність Docker. Платформа Docker постійно розвивається і шар обгортки не встигав би за появою нових функцій Docker. Rancher працює у фоні і користувачі можуть продовжувати користуватися нативним Docker Command Line Interface і шаблонами Compose. Rancher використовує labels – можливість Docker 1.6 для передачі додаткової інформації через Docker CLI. Цю можливість розробила Rancher Labs і її включили в Docker.
  2. Користувачі можуть взаємодіяти з Rancher за допомогою утиліти командного рядкаrancher-compose. Ця утиліта дозволяє користувачам запускати безліч контейнерів і сервісів, які засновані на docker-compose та інфраструктурі Rancher. Rancher–compose підтримує формат docker-compose.yml. Опціонально rancher-compose файл може бути розширено з допомогою визначень сервісів.
  3. Користувачі можуть взаємодіяти з Rancher з допомогою Rancher UI. У ньому ви можете виконувати завдання з налаштування, такі як встановлення контролю доступу, управління окружениями, додавання docker–реєстрів. Rancher UI – простий і інтуїтивний спосіб управління інфраструктурою і сервісами.


Установка Rancher в InfoboxCloud

Що дасть InfoboxCloud при використанні з Rancherсценарії InfoboxCloud дозволить вам створювати необхідну кількість хмарних серверів Санкт-Петербурзі Москві або Амстердамі конфігурацій, необхідної саме для ваших задач, а не вибирати з преднастроенных шаблонів серверів (якщо вам потрібно ще CPU, RAM або диска — просто додайте цього ресурсу).

Дані хмарних серверів будуть захищені потрійний реплікацією і автоматичне резервне копіювання за розкладом. Вся дискова підсистема прискорюється за рахунок Enterprise SSD–кешування на дисках PCI–Express SSD і SSD рівня Datacenter. Доступність серверів за SLA – 99.99% в рік.

Користуйтеся хмарами тому що вони успішно вирішують завдання за доступними цінами, а не тому що більше нікуди подітися.

Rancher розгортається як набір контейнерів Docker (а значить установка буде простий). Інсталяція складається з двох контейнерів: один контейнер — керуючий сервер, інший — агент на ноді. Rancher може працювати в високодоступних конфігураціях, але їх ми будемо розглядати в майбутніх статтях.

Системні вимоги
  • Рекомендується використовувати Rancher з CentOS 7 і Docker.
  • Для роботи керуючого сервера необхідний 1Gb оперативної пам'яті.


Встановлюємо Rancher Server
Як правильно створити сервер для Docker в InfoboxCloudЯкщо у вас ще немає доступу в InfoboxCloud – замовте його.

Використання хмари дуже зручно тим, що ніякої абонентської плати немає. При реєстрації ви одноразово поповнюєте рахунок мінімум на 500 рублів (за аналогією з купівлею sim–карти у мобільного оператора) і далі можете використовувати хмара за необхідності. Швидко розрахувати скільки приблизно буде коштувати для вас хмарний сервер в місяць тут (вказуйте правильно розмірності, наприклад 2 гігагерца частоти, а не 2000 гігагерц). Оплата здійснюється на погодинній основі і заморожується на вашому рахунку. Використовуючи автомасштабування або змінюючи обсяг доступних ресурсів сервера вручну можна оплачувати тільки за необхідні ресурси і додатково економити і мати можливість отримати більше ресурсів, коли це необхідно.

Після реєстрації ви отримаєте дані для доступу до панелі управління на email. Увійдіть в панель управління за адресою: https://panel.infobox.ru

В розділі «Хмарна інфраструктура» вашої підписки натисніть «Новий сервер» (при необхідності підписка змінюється в правому верхньому кутку у випадаючому меню).


Задайте потрібні параметри сервера. Обов'язково виділіть сервера 1 публічний IP–адресу і встановіть галочку «Дозволити управління ядром ОС», як показано на скріншоті нижче.


У списку доступних операційних систем виберіть CentOS 7 і завершіть створення сервера.


Після цього дані для доступу до сервера прийдуть вам на електронну пошту.

Після створення сервера з CentOS 7 підключіться до нього по SSH.

Ми підготували скрипт, який дозволить вам встановити Docker і корисні утиліти для роботи з Docker на такий сервер. Необхідні налаштування будуть виконані автоматично.

Виконайте команду для установки Docker і Compose:
bash <(curl-s http://repository.sandbox.infoboxcloud.ru/scripts/docker/centos7/install.sh)

Що робить скрипт1. Оновлює ОС.
2. Зупиняє postfix і забороняє його автозапуск. Postfix займає 25 порт, але цей порт може знадобитися вашим сервісів в docker.
3. Додає офіційний репозиторій Docker і встановлює docker-engine.
5. Додає репозиторій EPEL, встановлює pip, встановлює Docker Compose з допомогою pip.
6. Запускає сервіс Docker і додає його в автозавантаження.

Перезапустіть сервер.

Тепер можна встановити Rancher Server.

Створіть папку, де будуть зберігатися файли сервера Rancher та піддиректорії для бази даних командою:
mkdir-p~/rancher/var/lib/mysql/


Перейдіть в директорію користувача:
cd ~

Скачайте compose файл розгортання Rancher Server:
curl-O http://repository.sandbox.infoboxcloud.ru/scripts/rancher/centos7-docker/docker-compose.yml

І нарешті запустіть розгортання Rancher Server:
docker-compose up-d

Після розгортання ви зможете зайти на сервер за адресою:
ip–адреса сервера:8080




Рекомендується направити запис A домену на сервер Rancher, який буде використовуватися з Rancher, щоб в майбутньому не міняти ключі авторизації при направленні домену і мати можливість при зміні керуючого сервера не перенастроювати хости Rancher.

У наступних статтях ми розглянемо, як включити підтримку SSL з Rancher (потрібно перед Rancher розгорнути реверс-проксі-сервера nginx).

Налаштовуємо контроль доступу

Контроль доступу потрібен, щоб Rancher обмежував кількість користувачів, що мають доступ до ваших Rancher-серверів. Перший рахунок, який налаштував аутентифікацію в Rancher стає обліковим записом адміністратора. Тільки адміністратори мають права на перегляд параметрів контролю доступу та реєстрацію хостів. Крім цього адміністратори мають права на перегляд всіх оточень в інсталяції, навіть якщо вони не були додані як члени оточення.

Включення контролю доступу


Натисніть на Settings у попередженні про відключеному контроль доступу.



У даний момент підтримується авторизація тільки через Github, але в майбутньому з'являться і інші способи.

Якщо у вас ще немає аккаунта на Github, зареєструйтесь та не зайдіть.

Натисніть на значок свого облікового запису в правій верхній частині GitHub і перейдіть в розділ Налаштування.



Перейдіть в розділ «Applications» і натисніть «Developer Applications». В цьому розділі натисніть «Register New Application».



Заповніть поля:
  • application name — вкажіть що завгодно, щоб вам було зрозуміло, що це Rancher.
  • homepage URL – адреса встановленого Rancher Server (домену або ip–адреса)
  • Application description — будь-який опис Rancher
  • Authorization callback URL вказаний на сторінці Settings у Rancher Server, яку ми відкрили раніше.




Після цього натисніть «Register New Application».

Ви побачите Client ID Client Secret.



Вставте в розділ налаштувань контролю доступу Rancher.



Після цього натисніть Authenticate with Github для збереження налаштувань.

Відкриється сторінка Github, на якій потрібно натиснути «Authorize Application».



Тепер контроль доступу налаштований.

Якщо ви хочете додати людину або організацію в Rancher, в розділі Access control в секції Site Access натиснітьCustomize.



Ви можете вказати акаунт людини або організації на Github і додати в список користувачів Rancher.



Додані користувачі зможуть створювати оточення і ви можете дозволити їм працювати над існуючими окружениями.

Додаємо хост

На хостах буде виконуватися безпосередньо робота контейнерів і сервісів. Рекомендується для хоста створити окремий сервер в InfoboxCloud з CentOS 7. Можна створити хости в різних регіонах, наприклад в Москві, Санкт-Петербурзі та Амстердамі і розміщувати сервіси Rancher і контейнери там, де необхідно в даний момент. Додатковий регіон хмари можна додати на головній сторінці панелі керування в розділі «Замовити нову послугу».

Як правильно створити сервер для Docker в InfoboxCloudУ розділі «Хмарна інфраструктура» вашої підписки натисніть «Новий сервер» (при необхідності підписка змінюється в правому верхньому кутку у випадаючому меню).



Задайте потрібні параметри сервера. Обов'язково виділіть сервера 1 публічний IP–адресу і встановіть галочку «Дозволити управління ядром ОС», як показано на скріншоті нижче.



У списку доступних операційних систем виберіть CentOS 7 і завершіть створення сервера.



Після цього дані для доступу до сервера прийдуть вам на електронну пошту.


Встановіть на сервер Docker скриптом:
bash <(curl-s http://repository.sandbox.infoboxcloud.ru/scripts/docker/centos7/install.sh)


В цілях економії при тестуванні можна використовувати і той же сервер, де встановлено Rancher Server.

Щоб додати хост в Rancher перейдіть в розділ «Infrastructure» і натисніть "Add Host".



Натисніть «Custom». Ви побачите команду, яку потрібно виконати в консолі щоб додати сервер як хост.



Після цього натисніть Кнопку і ви побачите хост у вашій інфраструктурі.

Якщо натиснути на цей хост ви побачите актуальний графік завантаження ресурсів. В даному випадку оперативна пам'ять зайнята т. до. ми дозволили використання Rancher Server і як хост. панелі управління InfoboxCloud можна просто додати оперативної пам'яті сервера і ресурсів стане більше.



Додамо ще кілька хостів в Rancher Server в різних регіонах. Просто створюємо в потрібному регіоні сервер з CentOS 7 і встановленою галочкою «Дозволити управління ядром ОС», встановлюємо Docker скриптом, натискаємо в Rancher Server Add Host і виконуємо команду, видану Rancher на хості. Так просто.

Тепер у нас є інфраструктура на Rancher, що працює в різних регіонах InfoboxCloud.



У будь-який момент ви можете деактивувати один з хостів, щоб заборонити створювати в ньому нові контейнери.



Додаємо Docker Registry

Корисним буде додати репозиторії Docker або власні в Rancher.
Давайте подивимося, як просто можна додати DockerHub.

Натисніть на ім'я вашого користувача панелі управління Rancher і далі натисніть «Registries».



Потім натисніть «Add Registry».

Якщо у вас ще немає доступу до Docker Hub, додайте його тут.
Після цього введіть дані для доступу.



Репозиторій Docker Hub буде успішно додано.



У наступній статті ми розглянемо функціональність Rancher на практиці і розгорнемо набір корисних сервісів в переноситься інфраструктуру.

Як отримати тестову версію InfoboxCloud безкоштовно?

Надішліть нам ваша адреса електронної пошти та ПІБ на trukhinyuri@infoboxcloud.comу відповідь ви отримаєте дані для доступу до панелі управління. Ви можете тестувати новий регіон хмари протягом 15 днів, далі необхідно перейти на повну версію хмари. Замовити безкоштовну пробну версію можна до 21 серпня 2015 року.

Якщо у вас є питання або зауваження, пишіть нам і ми з радістю відповімо. Якщо ви не можете залишати коментарі на Хабре, напишіть Співтоваристві InfoboxCloud.

Успішної роботи!

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.