Rancher server что это
Innovate Everywhere
From datacenter to cloud to edge, Rancher lets you deliver Kubernetes-as-a-Service.
Kubernetes for Dummies
Learn how to build a successful Kubernetes implementation strategy with a step-by-step roadmap.
Accelerate your Enterprise Kubernetes Into the Future with Rancher 2.6
Bringing the best of enterprise Linux, Kubernetes management and edge solutions to wherever you are.
May 18-20, 2021
Free Kubernetes Course
Learn the fundamentals of Kubernetes multi-cluster management in this free 8-week course.
One Platform for Kubernetes Management
Rancher is a complete software stack for teams adopting containers. It addresses the operational and security challenges of managing multiple Kubernetes clusters, while providing DevOps teams with integrated tools for running containerized workloads.
From datacenter to cloud to edge, Rancher’s open source software lets you run Kubernetes everywhere
A Buyer’s Guide to Enterprise Kubernetes Management Platforms
Compare Rancher with other leading Kubernetes management platforms in how they deliver:
More than 30,000 teams use Rancher every day to innovate faster
You don’t need to figure Kubernetes out all on your own. Rancher is open source software, with an enormous community of users.
Join Our Community of Ranchers
Share and learn by connecting with us and the community.
Learn How Rancher Works
Become a Certified Rancher Operator
Learn how to use Rancher with Kubernetes and other cloud-native technologies to accelerate how you build and deploy applications for free.
Intro to Kubernetes and Rancher online training
Free, online training for Kubernetes and Rancher. Our popular sessions show you the basics of running Kubernetes, including deployments, pods, services, running Kubectl, and ingresses.
A Guide to Kubernetes with Rancher
Learn about challenges and solutions when deploying Kubernetes, what it means to partner with Rancher, and how to get started.
Rancher: Kubernetes за 5 минут на голом железе
На переправе оркестратор не меняют.
После того как мне окончательно надоел Docker Swarm из-за своей псевдопростоты и постоянного допиливания, не очень удобной работой с распределенными файловыми системами, немного сыроватым web-интерфейсом и узкой функциональностью, а также отсутствие поддержки «из коробки» GitLab интеграции, было принято решение развернуть свой Kubernetes cluster на собственном железе, а именно, путем развертывания Rancher Management Server 2.0.
Опыт установки, схема отказоустойчивости, работа с haProxy и два dashboard под катом:
Входные данные:
Host Server HP Proliant DL320e Gen8 — 2 шт.
VM Ubuntu Server 16.04, 2Gb RAM, 2vCPU, 20Gb HDD — 1 шт. on each Host (VM-haProxy).
VM Ubuntu Server 16.04, 4Gb RAM, 4vCPU, 40Gb HDD, 20 Gb SSD — 3 шт. on each Host (VM-*-Cluster).
VM Ubuntu Server 16.04, 4Gb RAM, 4vCPU, 100Gb HDD — 1 шт. on anyone Host (VM-NFS).
Приступаем:
VM-haProxy имеет на борту haProxy, fail2ban, правила iptables. Исполняет роль шлюза для всех машин за ним. У нас два шлюза и все машины в случае потери связи шлюза на своем хосте переключатся на другой.
Главная задача этих узлов (VM-haProxy) распределять доступ к backend, балансировать, пробрасывать порты, собирать статистику.
Мой выбор пал на haProxy, как более узко направленному инструменту относительно балансирования и health checking. При всем этом нравится синтаксис директив конфигураций и работа с белыми и черными списками IP, а также работа с мультидоменным SSL подключением.
Важно: Все машины должны «знать» друг друга по имени хоста.
VM-Master-Cluster — главная машина управления. Отлично от других нод имеет на борту Puppet Master, GlusterFS Server, Rancher Server (container), etcd (container), control manager (container). В случае отключения этого хоста, production сервисы продолжают работать.
VM-Node-Cluster — Ноды, воркеры. Рабочие машины, ресурсы которых будут объединены в одну отказоустойчивую среду. Ничего интересного.
VM-NFS — NFS сервер (nfs-kernel-server). Главная задача — это предоставление буфферного пространства. Хранит конфигурационные файлы и всякое. Не хранит ничего важного. Его падение можно исправлять не спеша, попивая кофе.
Важно: Все машины окружения должны иметь на борту: docker.io, nfs-common, gluster-server.
Монтирование nfs-volume и настройку GlusterFS описывать не буду, так как это щедро описано в большом количестве.
Если вы заметили, в описании спецификации, есть SSD диски, они заготовлены для работы распределенной файловой системы Gluster. Создайте разделы, и хранилища на высокоскоростных дисках.
Примечание. На самом деле, для запуска Rancher не требуется зеркально идентичной среды. Все вышеописанное — это мое видение кластера и описание того, каких практик придерживаюсь я.
Для запуска Rancher достаточно одной машины, с 4CPU, 4Gb RAM, 10Gb HDD.
5 минут до Rancher.
На VM-Master-Cluster выполняем:
Если вы увидели API — я Вас поздравляю ровно половина пути пройдена.
Взглянув на схему сети снова, мы вспомним что будем работать извне, через haProxy, в конфигурации у нас опубликована ссылка rancher.domain.ru, переходим, устанавливаем свой пароль.
Следующая страница — страница создания кластера Kubernetes.
В меню Cluster Options, выберите Flannel. С другими провайдерами сетей не работал. Советовать не могу.
Стоит обратить внимание на то, что мы установили чекбоксы etcd и Control Plane, чекбокс worker не установлен, в том случае, если вы не планируете использовать менеджер в режиме воркера.
Мы работаем внутри локальной сети, с одним адресом на NIC, поэтому в полях Public и Internal Address указали один и тот же IP.
Скопируйте получившийся код выше, запустите его в консоли.
Спустя некоторое время в web интерфейсе вы увидите сообщение о добавлении ноды. А еще через некоторое время у вас запустится кластер Kubernetes.
Чтобы добавить воркер, перейдите в редактирование кластера в web интерфейсе Rancher, увидите то же меню, которое генерирует команду подключения.
Установите чекбокс только в положение worker, укажите IP будущего воркера, скопируйте команду и выполните ее в консоли нужной вам ноды.
Через некоторое время мощность кластера увеличится, ровно как и количество нод.
Установка Kubernetes Dashboard:
Перейдите в меню Projects/Namespaces.
После установки вы увидите, что namespaces, относящиеся к Kubernetes, будут содержаться вне проектов. Чтобы полноценно работать с этими пространствами имен их необходимо поместить в проект.
Добавьте проект, назовите по своему усмотрению. Переместите namespaces (cattle-system, ingress-nginx, kube-public, kube-system) в созданный вами проект с помощью контекстного меню «Move». Должно получится так:
Щелкните прямо по имени проекта, вы попадете в панель управления workload. Именно здесь далее мы разберем, как создать простой сервис.
Нажмите «Import YAML» в правом верхнем углу. Скопируйте и вставьте содержимое этого файла в текстбокс открывшегося окна, выберите namespace «kube-system», нажмите «Import».
Через некоторое время запустится pod kubernetes-dashboard.
Перейдите в редактирование pod, раскройте меню публикации портов, установите следующие значения:
Проверьте доступ на ноде на которой запущен pod.
Увидели ответ? Публикация завершена, осталось достучаться до административной части.
На главной странице управления кластером в Rancher, есть очень удобные инструменты, такие как, kubectl — консоль управления кластером и Kubeconfig File — файл конфигурации, содержащий адрес API, ca.crt и т.д.
Заходим в kubectl и выполняем:
Мы создали сервис аккаунт с высшими привелегиями, теперь нам нужен токен для доступа в Dashboard.
Найдем секрет созданного аккаунта:
Увидим имя аккаунта с неким хэшем в конце, копируем его и выполняем:
Снова вспомним о том, что у нас все благополучно опубликовано через haProxy.
Подготовка ресурсов внешнего кластера для Rancher
Введение
Каким бы образом не был создан кластер и гд бы он не находился, Rancher предоставляет доступ ко всем кластерам через одну панель управления.
Задачи
3 служебные ноды (etcd, control panel)
4 рабочие ноды (worker)
1 виртуальная машина внутри нового кластера для создания туннеля
Настроить связь между сетями:
Первая сеть: внутренняя сеть с кластером Rancher и управляющим Rancher server
Вторая сеть: внешняя сеть с кластером Rancher на bare-metal сервере
Добавить сервер Nexus для хранения артефактов Helm и Docker
Установка VMware
Дано: выделенный сервер с характеристиками: 2 x Xeon Gold 6240R по 24 ядра каждый, ОЗУ 320 ГБ DDR4, 4 x 480 ГБ SSD.
Сделали на сервере RAID10 и установили VMware vSphere Hypervisor 7 License. Это бесплатная версия с ограничением до 8 ядер на каждую ВМ.
Установка и настройка виртуальных машин
Name
RAM. gb
HDD, gb
Private ip
Public ip
На каждой ВМ установлен дистрибутив Ubuntu Server 18.
На каждой ВМ для кластера (кроме vm-nexus) выполняем команды для установки docker:
в файле /etc/fstab удалить строку отвечающую за swap-файлПлюс удалить файл, который отвечает за swap: /swap
Архитектура сети
Ip-адреса на всех ВМ прописаны вручную. Настройки сети и маршрутов в каждой ВМ хранятся в файле по адресу: /etc/netplan/00-installer-config.yaml
Текущий кластер находится в сети 10.1.0.0/16
Для внутренней локальной сети нового кластера используется диапазон адресов: 10.21.0.0/16
Машина vm-firewall имеет два сетевых интерфейса:
ens160. К этому интерфейсу прикреплён «белый» адрес: 8.10.7.2, который выдал провайдер. Через этот адрес происходит соединение с точкой входа трафика текущего кластера и создание туннеля.
ens192. Интерфейс для внутренней сети нового кластера. Он выступает в роли шлюза для всех ВМ внутри сети нового кластера.
Настройки сети на vm-firewall:
network:
ethernets:
ens160:
dhcp4: false
addresses: [8.10.7.2/23]
gateway4: 8.10.7.1
dhcp4-overrides:
use-dns: false
nameservers:
addresses: [8.8.8.8,8.8.4.4]
routes:
— to: 10.1.0.0/16
via: 8.10.7.2
on-link: true
metric: 100
— to: 10.21.0.0/16
via: 10.21.0.1
on-link: true
metric: 110
— to: 0.0.0.0/0
via: 8.10.7.2
on-link: true
metric: 120
ens192:
dhcp4: false
addresses: [10.21.0.1/16]
version: 2
Настройки сети на любой другой ВМ:
network:
ethernets:
ens160:
dhcp4: false
addresses: [10.21.0.11/16]
gateway4: 10.21.0.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
version: 2
После правки конфигурационного файла службы netplan необходимо проверить синтаксис:
И применить настройки:
После этого необходимо проверить как применились настройки ip-адреса:
И как применились настройки маршрутов:
$ ip route
default via 10.21.0.1 dev ens160 proto static
10.21.0.0/16 dev ens160 proto kernel scope link src 10.21.0.11
Настройка туннеля между текущим кластером и новым кластером
Для туннеля выбрана технология IPsec. Настройки производятся на ВМ vm-firewall.
Со стороны нашей внутренней сети текущего кластера настраиваем точку входа на файерволе и сохраняем файл с настройками 1-ой и 2-ой фазы для поднятия туннеля.
apt-get install racoon ipsec-tools
В системе устанавливаются два компонента:
Демона racoon для управления туннелем ISAKMP.
Утилиты setkey для управления SA-туннелей с данными.
Начнем с первого. Racoon отвечает за параметры авторизации туннелей в рамках IKE. Это демон, он настраивается одним конфигурационным файлом (/etc/racoon/racoon.conf), запускается обычным init-скриптом (/etc/init.d/racoon ):
В блоке remote указываются настройки 1-й фазы
В блоке sainfo указываются настройки 2-й фазы
# cat /etc/racoon/racoon.conf
log notify;
path pre_shared_key «/etc/racoon/psk.txt»;
listen <
isakmp 8.10.7.2[500];
strict_address;
>
remote 19.4.15.14 <
exchange_mode main,aggressive;
lifetime time 24 hour;
dpd_delay 5;
proposal <
encryption_algorithm aes 256;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
lifetime time 86400 sec;
>
>
sainfo address 10.21.0.0/24 any address 10.1.0.0/16 any <
pfs_group 2;
lifetime time 28800 sec;
encryption_algorithm aes 256;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
>
В файле psk.txt указываем ключ, который задали на точке входа со стороны сети текущего кластера:
# cat /etc/racoon/psk.txt
# IPv4/v6 addresses
19.4.15.14 PA$$W0RD
Дальше займемся утилитой setkey. Она тоже запускается как демон (/etc/init.d/setkey ), но по факту она выполняет скрипт /etc/ipsec-tools.conf. Как говорилось ранее, она уже задает создает туннели для пользовательского трафика. А именно задает SA и SP для них:
# NOTE: Do not use this file if you use racoon with racoon-tool
# utility. racoon-tool will setup SAs and SPDs automatically using
# /etc/racoon/racoon-tool.conf configuration.
#
## Flush the SAD and SPD
#
flush;
spdflush;
Перезапускаем сервисы в этой последовательности:
systemctl restart setkey.service
systemctl restart racoon.service
Проверка работоспособности
Не забывайте, туннель поднимется только тогда, когда в него пойдет трафик. Надо запустить пинг до назначения. Запускаем пинг с ноды 10.21.0.11 до ноды текущего кластера (10.1.1.13):
С небольшой задержкой должны быть ответы с обратной стороны (если конечно ICMP нигде не закрыт на участке).
Проверяем настройку маршрутов на той же ноде:
$ traceroute 10.1.1.13
traceroute to 10.1.1.13 (10.1.1.13), 30 hops max, 60 byte packets
1 _gateway (10.21.0.1) 0.113 ms 0.080 ms 0.096 ms
2 * * *
3 10.1.1.13 (10.1.1.13) 2.846 ms 2.875 ms 2.874 ms
На vm-firewall проверяем поднялся ли ISAKMP-туннель:
# racoonctl show-sa isakmp
Destination Cookies Created
10.1.0.1.500 356a7e134251a93f:30071210375c165 2021-02-19 09:18:28
Если туннель не устанавливается, то необходимо в файле /etc/racoon/racoon.conf изменить уровень логов с log notify до log debug2 и перезагрузить сервисы:
systemctl restart setkey.service
systemctl restart racoon.service
Внимательно читаем man racoon.conf и примеры в /usr/share/doc/racoon/
После дебага не забудьте вернуть уровень логов на прежнее место.
Установка и настройка Nexus
Переходим на машину, где надо установить Nexus и устанавливаем его по инструкции: https://help.sonatype.com/repomanager3/installation
Проверяем, что Nexus отвечает на порту 8081:
Далее настройки производятся на ВМ vm-firewall.
Устанавливаем пакет для возможности сохранять/восстанавливать iptables:
aptitude install iptables-persistent
Настраиваем возможность пересылки пакетов (IP forwarding):
Открываем файл sysctl.conf:
Находим в файле и убираем комментарий со строки:
Сохраняем, выходим из файла и перезагружаем машину командой reboot
Проверяем что настройка применилась:
Добавляем правило в iptables для возможности пересылки пакетов:
Проверяем что правило добавилось:
Запрещаем подключение к 22 порту (по SSH) для всех, но разрешаем подключаться из сети текущего кластера (10.1.0.0):
Необходимо подключаться к веб-интерфейсу Nexus. Так как он установлен на внутренней машине 10.21.0.100, то необходимо сделать возможность подключаться к нему с публичного адреса 8.10.7.2. Для этого делаем правило на iptables, которое пробрасываем порт 8081 с 10.21.0.100 где запущен Nexus на порт 8081. Таким образом веб-интерфейс Nexus будет доступен по адресу: 8.10.7.2:8081
Сохранение iptables
После того как мы добавили новые правила (кстати они применяются сразу и не требуют перезагрузки) надо правила сохранить, чтобы после перезагрузки машины они применялись.
Для этого выполняем команду:
Также можно просто посмотреть какие правила сохранятся без записи в файл:
Отладка iptables
Если надо удалить все правила iptables:
Настройка многоузловых развертываний с Rancher 2.1, Kubernetes и Docker Machine в Ubuntu 18.04
Published on January 24, 2020
Автор выбрал Code Org для получения пожертвования в рамках программы Write for DOnations.
Введение
Rancher — это популярная платформа управления контейнерами с открытым исходным кодом. Выпущенная в начале 2018 года версия Rancher 2.X работает на Kubernetes и включает новые инструменты, такие как управление несколькими кластерами и встроенные CI конвейеры. Помимо повышенной безопасности, масштабируемости и простых инструментов развертывания, уже имеющихся в Kubernetes, Rancher предлагает графический пользовательский интерфейс, упрощающий управление контейнерами. Благодаря графическому интерфейсу Rancher пользователи смогут управлять секретами, безопасно обрабатывать роли и разрешения, масштабировать узлы и поды, а также выполнять настройку средств распределения нагрузки и томов без необходимости использования инструментов командной строки или сложных файлов YAML.
В этом руководстве мы будем разворачивать многоузловой сервер Rancher 2.1 с помощью Docker Machine в Ubuntu 18.04. По окончании руководства вы сможете предоставить новые дроплеты DigitalOcean и поды контейнеров через пользовательский интерфейс Rancher для быстрого расширения или сокращения вашей среды хостинга.
Предварительные требования
Перед прохождением этого обучающего руководства вам потребуется учетная запись DigitalOcean, а также следующее:
Маркер персонального доступа DigitalOcean, который вы можете создать в соответствии с указаниями этого руководства. Этот маркер позволит Rancher получить через API доступ к учетной записи DigitalOcean.
Полное зарегистрированное доменное имя с записью A, которая указывает на IP-адрес дроплета, создаваемый на шаге 1. Вы можете узнать, как привязывать домены к дроплетам DigitalOcean, ознакомившись с документацией по доменам и DNS DigitalOcean. В данном руководстве замените example.com на ваш домен.
Шаг 1 — Создание дроплета с установленным Docker
Чтобы запустить и настроить Rancher, вам нужно будет создать новый дроплет с установленным Docker. Для этого нужно использовать образ Docker DigitalOcean.
Войдите в учетную запись DigitalOcean и выберите Create Droplet (Создать дроплет). Затем в разделе Choose an Image (Выбрать образ) выберите вкладку Marketplace (Магазин). Выберите Docker 18.06.1
Далее выберите дроплет размером не менее 2 ГБ и укажите регион центра обработки данных для вашего дроплета.
После этого добавьте ключи SSH, укажите имя хоста для дроплета и нажмите Create (Создать).
Может потребоваться несколько минут для организации работы сервера и загрузки Docker. После успешного развертывания дроплета вы можете запустить Rancher в новом контейнере Docker.
Шаг 2 — Запуск и настройка Rancher
Дроплет, созданный на шаге 1, будет запускать Rancher в контейнере Docker. На этом шаге вы запустите контейнер Rancher и убедитесь, что у него есть сертификат SSL от Let’s Encrypt для получения защищенного доступа к панели администратора Rancher. Let’s Encrypt — это автоматизированный издатель сертификатов с открытым исходным кодом, позволяющий разработчикам получать действующие в течение 90 дней сертификаты SSL бесплатно.
Выполните вход в новый дроплет:
Чтобы убедиться, что Docker запущен, введите:
Проверьте, что указанная версия Docker соответствует вашим ожиданиям. Вы можете запустить Rancher с уже установленным сертификатом Let’s Encrypt с помощью следующей команды:
Для просмотра всех запущенных контейнеров введите:
Вы увидите примерно следующий вывод (с уникальным идентификатором и именем контейнера):
Прежде чем вы сможете получить доступ к панели администратора Rancher, вам нужно будет задать пароль администратора и URL-адрес сервера Rancher. Интерфейс администратора Rancher позволит вам получить доступ ко всем запущенным узлам, подам и секретам, поэтому важно использовать надежный пароль.
Перейдите к доменному имени, которое указывает на ваш новый дроплет, в браузере. При первом посещении этого адреса Rancher попросит задать пароль:
При запросе URL-адреса сервера Rancher используйте доменное имя, указывающее на ваш дроплет.
Теперь, когда вы выполнили настройку сервера Rancher, вы увидите домашний экран администратора Rancher:
Вы можете перейти к настройке кластера Rancher.
Шаг 3 — Настройка кластера с одним узлом
Для использования Rancher вам потребуется создать кластер с как минимум одним узлом. Кластер — это группа с одним или несколькими узлами. В этом руководстве вы найдете более подробную информацию об архитектуре Kubernetes. В настоящем руководстве узлы соответствуют дроплетам, которыми управляет Rancher. Поды представляют собой группу запущенных контейнеров Docker внутри дроплета. Каждый узел может запускать множество подов. В пользовательском интерфейсе Rancher вы можете настроить кластеры и узлы в лежащей в его основе среде Kubernetes.
К концу этого шага у вас должен быть настроенный кластер с одним узлом, готовый к запуску первого пода.
В Rancher нажмите Add Cluster (Добавить кластер) и выберите DigitalOcean в качестве поставщика инфраструктуры.
Откройте меню Cluster Name (Имя кластера) и прокрутите до раздела Node Pools (Пулы узлов). Введите Name Prefix (Префикс имени), оставьте значение 1 для параметра Count (Счетчик) и проверьте etcd, Control Plane (Уровень управления) и Worker (Рабочее приложение).
Перед созданием кластера нажмите Add Template Node (Добавить шаблон узла) для настройки конкретных параметров вашего нового узла.
Введите персональный маркер доступа DigitalOcean в поле ввода Access Token (Маркер доступа) и нажмите Next: Configure Droplet (Далее: настройка дроплета).
Далее выберите тот же Region (Регион) и Droplet Size (Размер дроплета), что и в шаге 1. Для Image (Образ) выберите Ubuntu 16.04.5 x64, так как в настоящее время существует проблема совместимости Rancher с Ubuntu 18.04. Нажмите Create (Создать) для сохранения шаблона.
После этого нажмите Create (Создать) на странице Add Cluster (Добавить кластера) для завершения процесса предоставления. Rancher потребуется несколько минут на выполнение этого шага, но после завершения работы вы увидите новый дроплет в панели управления дроплетов DigitalOcean.
На этом шаге вы создали новый кластер и узел, где вы будете разворачивать рабочую нагрузку в следующем разделе.
Шаг 4 — Развертывание рабочей нагрузки веб-приложения
Когда новый кластер и узел будут готовы, вы можете развернуть ваш первый под в рабочей нагрузке. Под Kubernetes — это самая маленькая часть работы, доступная в Kubernetes и расширении Rancher. Рабочие нагрузки описывают одну группу подов, которые вы разворачиваете вместе. Например, вы можете запустить несколько подов вашего веб-сервера в одной рабочей нагрузке, чтобы убедиться, что, если один под замедляется при получении конкретного запроса, другие экземпляры могут обрабатывать входящие запросы. В этом разделе вы должны будете развернуть образ Nginx Hello World в одном поде.
Наведите курсор на Global (Глобально) в заголовке и выберите Default (По умолчанию). В результате будет отображена панель проекта по умолчанию. В этом руководстве вы будете работать над развертыванием отдельного проекта, но в этой панели управления вы также можете создать несколько проектов для получения сред для изолированных контейнеров.
Для начала настройки первого пода нажмите Deploy (Развернуть).
Откройте Name (Имя) и введите nginxdemos/hello в поле Docker Image (Образ Docker). Затем разметьте порт 80 в контейнере для порта 30000 на узлах хоста. Это позволит гарантировать, что поды, которые вы разворачивайте, будут доступны на каждом узле порта 30000. Вы можете оставить для параметра Protocol (Протокол) значение TCP, а в следующем выпадающем списке укажите NodePort.
Примечание. Хотя этот метод запуска узла на порте каждого узла легче использовать, Rancher также включает Ingress для распределения нагрузки и прекращения работы SSL для использования в продакшене.
Для запуска пода прокрутите до самого низа и нажмите Launch (Запустить).
Rancher вернет вас на домашнюю страницу проекта по умолчанию, а в течение нескольких секунд ваш под будет готов. Нажмите ссылку 30000/tcp под именем рабочей нагрузки, и Rancher откроет новую вкладку с информацией о среде запущенного контейнера.
Адрес сервера и порт, которые вы видите на этой странице, повторяют данные внутренней сети Docker, а не являются публичным IP-адресом, который вы видите в браузере. Это означает, что Rancher работает и перенаправляет трафик с http:// first_node_ip :30000/ на рабочую нагрузку, как и ожидалось.
В данный момент вы успешно развернули вашу первую рабочую нагрузку одного пода на отдельном узле Rancher. Далее вы узнаете, как можно расширить вашу среду Rancher.
Шаг 5 — Масштабирование узлов и подов
Rancher предоставляет два способа масштабирования ресурсов хостинга: увеличение числа подов в вашей рабочей нагрузке или увеличение числа узлов вашего кластера.
Добавление подов в вашу рабочую нагрузку будет предоставлять вашему приложению большее количество запущенных процессов. Это позволит ему обрабатывать больше трафика и добиться развертываний без остановки работы приложений, но каждый узел сможет обрабатывать только ограниченное количество подов. Когда все ваши узлы достигнут лимита на количество подов, вам нужно будет увеличить количество узлов, если вы захотите продолжить масштабирование вашего приложения.
Еще одним соображением, которое нужно учитывать, является тот факт, что, хотя увеличение количества подов выполняется бесплатно, вам придется платить за каждый узел, добавляемый в вашу среду. На этом шаге вы сможете расширить количество узлов и подов, а также добавить дополнительный узел в ваш кластер Rancher.
Примечание. В этой части руководства будет предоставлен новый дроплет DigitalOcean автоматически через API, поэтому вы должны учитывать, что запуск второго узла будет сопровождаться дополнительными расходами.
Перейдите на домашнюю страницу кластера установки Rancher, выбрав Cluster: your-cluster-name в верхней панели навигации. Далее нажмите Nodes (Узлы) в верхней панели навигации.
Эта страница показывает, что у вас в кластере есть один запущенный узел. Для добавления дополнительных узлов нажмите Edit Cluster (Изменить кластер) и прокрутите до раздела Node Pools (Пулы узлов) внизу страницы. Нажмите Add Node Pool (Добавить пул узлов), введите префикс и проверьте поле Worker (Рабочее приложение). Нажмите Save (Сохранить) для обновления кластера.
В течение 2–5 минут Rancher предоставит второй дроплет и отметит узел как Active (Активный) в панели управления кластера. Этот второй узел — только рабочее приложение, что означает, что он не будет использовать etcd Rancher или контейнеры панели управления. Это предоставляет рабочему приложению больше возможностей для запуска рабочих нагрузок.
Примечание. При наличии нечетного числа узлов etcd будет гарантировано, что всегда можно будет достичь кворума (или консенсуса). Если у вас есть только один узел etcd, вы сталкиваетесь с риском того, что ваш кластер может стать недоступным, если этот один узел прекратит работу. В продакшен-среде лучше использовать три или пять узлов etcd.
Когда второй узел будет готов, вы сможете увидеть рабочую нагрузку, которую вы развернули на предыдущем шаге, на этом узле, если перейдете на http:// send_node_ip :30000/ в браузере.
Масштабирование узлов позволяет вам использовать больше дроплетов для распределения ваших рабочих нагрузок, но вы также можете использовать несколько экземпляров каждого пода внутри рабочей нагрузки. Для добавления дополнительных подов вернитесь на страницу проекта по умолчанию, нажмите стрелку слева от рабочей нагрузки hello-world и нажмите + два раза для добавления двух новых подов.
Rancher автоматически развернет несколько подов и распределит запущенные контейнеры на каждом узле, в зависимости от доступности.
Теперь вы можете масштабировать ваши узлы и поды согласно требованиям вашего приложения.
Заключение
Вы выполнили развертывание нескольких узлов с помощью Rancher 2.1 в Ubuntu 18.04, а также расширили вашу конфигурацию до двух запущенных узлов и нескольких подов внутри рабочей нагрузки. Вы можете использовать эту стратегию для размещения и масштабирования любых контейнеров Docker, которые вам нужно запускать в вашем приложении, и использовать панель управления и оповещения Rancher для максимального повышения производительности ваших рабочих нагрузок и узлов внутри кластера.