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

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

14537
8 минут

Как-то так получилось, что вчера я решил посмотреть, что там происходит с 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/DevOps
Развертываем и сопровождаем инфраструктуру для бизнес-приложений на базе микросервисов и контейнеров

Установка кластера 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 в своем домене и, например, хостить ваш сервис из-под вашего домена).

19 октября 2023
Контейнеры: технологии и процессы глазами разработчика

В выпуске#9 видеоподкаста «Откровенно об ИТ-инфраструктуре» поговорили о роли контейнеров в разработке. Приглашенные эксперты обсудили специфику использования Kubernetes и сокращение time-to-market в контексте контейнеризации.

В гостях Михаил Гудов, Orion soft, и Василий Колосов, Smartex.
1 минута
778
19 июня 2023
Семь трендов на рынке облачных услуг в 2023 году
До 2022 года на рынке облаков в России главенствовали мировые тренды, но сейчас наша страна пошла своим путем. О том, для чего сейчас компании используют облачные технологии и как меняется рынок, рассказал директор по развитию КРОК Облачные сервисы Сергей Зинкевич.
1 минута
2180
16 июня 2023
Рулевой в океане контейнеров
Выпуск#3 видеоподкаста «Откровенно об ИТ-инфраструктуре» посвящен Kubernetes и профессиональным платформам оркестрации контейнеров. Обсудили, как сегодня складывается ситуация на российском рынке контейнерных платформ, что востребовано и почему, особенности и перспективы работы с Kubernetes.

В гостях Александр Баталов, Генеральный директор Флант
1 минута
1503
29 марта 2023
Сетевые балансировщики нагрузки и другие обновления Облака КРОК

Мы рады вам представить новый сервис Облака КРОК для распределения трафика между экземплярами – Балансировщики нагрузки. Кроме того, мы автоматизировали обновление сертификатов Kubernetes и добавили возможность удаления рабочих узлов из кластера Kubernetes.

2 минуты
914
15 ноября 2022
OpenShift остался без поддержки – как решить проблему российским клиентам
Интерес к семейству ПО для контейнеризации OpenShift был довольно высоким в корпоративном сегменте в прежние годы. По данным мониторинговой службы Datadog, только за прошлый год во всем мире количество пользователей платформ от RedHat увеличилось на 28%. Весной IBM объявил об уходе из России и прекращении поддержки всех программных продуктов для текущих клиентов. Разберемся, насколько критичной оказалась данная ситуация для заказчиков, и какие варианты действий существуют, чтобы минимизировать возможные риски отключения от сервиса.
1 минута
1027
scrollup