Запросить демо
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Дополнительные услуги
Узнать стоимость
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Дополнительные услуги
Попробовать бесплатно
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Дополнительные услуги
Быть в теме

Установка Kubernetes кластера за 15 минут при помощи Rancher 2.0

12.09.2018 7 минут 316

Как-то так получилось, что вчера я решил посмотреть, что там происходит с Rancher – еще одной очень интересной системе, упрощающей оркестрацию контейнеров.

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

Установка и первое впечатление

Я везде использую Ubuntu, поэтому вот список команд для Ubuntu 16.04, устанавливающих Docker без лишних вопросов:


#!/bin/bash

apt-get update

apt-get -y install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

apt-key fingerprint 0EBFCD88

add-apt-repository «deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable»

apt-get update

apt-get -y install docker-ce

usermod -G docker ec2-user


Для тех, кто использует хостинг с OpenStack или, например, Облако КРОК, эти инструкции могут быть переданы виртуальной машине через пользовательские данные (user-data), чтобы установить Docker сразу в процессе загрузки. Как это сделать, показано в видео к этому посту.


Для установки Rancher не требуется ровным счетом ничего, кроме набора открытых портов и минимум 4-х Гб оперативной памяти для виртуальной машины. Сама же установка осуществляется командой:

sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/server:preview


Сразу после запуска контейнера на внешнем IP-адресе вашей виртуальной машины станет доступен Web-интерфейс управления Rancher. При первом входе надо будет задать пароль для учетной записи admin:

Rancher-2.0-Setup-First-Login.png


Скажу сразу, что за последний год у Rancher произошло множество существенных изменений. Они сконцентрировались на Kubernetes, убрали все лишнее из Web-интерфейса, сделали его лаконичным и интуитивно понятным.


Приятно также то, что Kubernetes кластер устанавливается сам за считанные минуты и легко расширяется. Можно использовать любое Облако, хостинг или ставить его на голое железо.


Поддерживается очень много систем хранения данных для постоянных дисков (persistent volumes) Kubernetes.


Поддерживаются роли, что позволяет вам инсталлировать Kubernetes кластеры для себя и своих друзей просто пачками


В общем, если в течении прошлого года я еще советовал коллегам устанавливать Kubernetes самостоятельно, то теперь смело могу утверждать, что для облегчения собственной жизни можно использовать Rancher!

Установка кластера Kubernetes

Сразу после задания пароля вы попадаете в интерфейс, где вам сразу же предлагают создать ваш первый кластер. Ну что ж, согласимся! Жмем большую синюю кнопку Add cluster.


Rancher-2.0-Setup-Kubernetes-cluster.png


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

Rancher-2.0-Setup-Kubernetes-cluster-Step-1.png


Если вы разворачиваете кластер впервые, все остальные опции можно оставить без изменения. На всякий случай скажу, что выбрать версию кластера Kubernetes и тип виртуализации сети можно в Cluster Options.

Rancher-2.0-Setup-Kubernetes-cluster-Step-1.1.png


Нажимаем Next и попадаем в визард по добавлению хостов. Здесь можно в графическом Web-интерфейсе назначить хосту конкретную роль и получить Docker команду, которую надо будет выполнить на дополнительном хосте, чтобы добавить его в кластер.


Если ваши ресурсы ограничены или вы хотите просто посмотреть, как все это работает, можно поставить галочки на ролях etcd, Control и Worker и выполнить полученную команду прямо на хосте, на котором вы запустили мастер-сервер Rancher-а.


Внимание: обратите внимание на Node Addresses. Если ваш хост получает внешний IP-адрес при помощи NAT (как в AWS или GCP), необходимо явно указать его публичный и приватный IP.


Копируем Docker команду и выполняем ее на нужном нам хосте. А в визарде нажимаем на кнопку Done. Процесс инсталляции запущен.

Rancher-2.0-Setup-Kubernetes-cluster-Installation-process.png

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


В конце процесса инсталляции, который длится несколько минут, вы увидите статистику доступных в кластере ресурсов.
Rancher-2.0-Setup-Kubernetes-cluster-Status.png

Тестирование кластеа

Для запуска сервиса переходим в пространство или окружение (кому как нравится) Default.

Rancher-2.0-Setup-Kubernetes-cluster-Default-namespace.png


Нажимаем кнопку Deploy:

Rancher-2.0-Setup-Kubernetes-cluster-Deploy-workload.png


В поле Name вводим, например, название сервиса, который мы запускаем. В качестве примера я запущу Nginx в стандартной конфигурации, поэтому в поле Name я укажу просто Test-Nginx.


В поле Docker Image указываем Docker образ, находящийся в публичном репозитории, который мы хотим запустить, в моем случае это просто nginx.


Далее можно выбрать количество подов для запуска, я оставлю 1.


И конечно же, нужно сделать мапинг портов.


Нажмите Add Port. И укажите 80 в Publish the container port. Остальные значения оставьте по-умолчанию.

Rancher-2.0-Setup-Kubernetes-cluster-Workload-setup.png


Нажмите кнопку Launch.


Как только Nginx закончит публиковаться, вы увидите, что его статус изменится на Active. Получить доступ к сервису можно при помощи правого клика на опубликованный порт.

Rancher-2.0-Setup-Kubernetes-cluster-Workload-access.png


Давайте опубликуем наш Nginx наружу как нормальное Web-приложение. Для этого перейдем во вкладку Load Balancing и добавим Ingress LoadBalancer.

Rancher-2.0-Setup-Kubernetes-cluster-Ingree-LoadBalancer.png


В качестве имени укажем my-nginx-website, в качестве Path укажем /, в качестве Target укажем наш test-nginx, а в качестве порта поставим 80. Нажимаем Save.


Через несколько секунд вы увидите, что ваш Nginx был опубликован за балансировщиком, стал доступен по FQDN в домене xip.io (т.е. на этот FQDN можно теперь назначить CNAME в своем домене и, например, хостить ваш сервис из-под вашего домена).

Сервисы упоминаемые в статье

  1. Публичное облако КРОК

Не пропустите самые важные, интересные и полезные статьи недели

Ваш e-mail успешно подписан.

Смотрите так же