Установка KUMA версии от 2.1.Х с отказоустойчивым ядром
Отказоустойчивость KUMA обеспечивается путем внедрения ядра KUMA в кластер Kubernetes, развернутый установщиком KUMA. В качестве распределённого блочного хранилища для кластера используется Longhorn. Схема:
Для установки KUMA в отказоустойчивом исполнении используется установщик kuma-ansible-installer-ha-2.1. X.tar.gz. Конфигурация кластера Kubernetes задается в файле инвентаря k0s.inventory.yml
.
Минимально кластер должен включать:
- один контроллер (выделенный или совмещенный с рабочим узлом);
- один рабочий узел (выделенный, или совмещенный с контроллером);
- 0 и более выделенных рабочих узлов.
Минимальная конфигурация, на которую можно произвести установку - один контроллер, совмещенный с рабочим узлом. Данная конфигурация не обеспечивает отказоустойчивости core и служит для демонстрации возможностей/проверки программной среды.
Для реализации отказоустойчивости необходим выделенный контроллер кластера и минимум 2 рабочих узла. Если контроллер кластера содержит рабочую нагрузку и под с Core размещается на нем, то его отключение приведет к полной потере доступа к Core.
- В нашем случае мы будем использовать установку All-In-One хост kuma-1.local, один узел контроллера (хост kuma-2.local) и два рабочих узла (хост kuma-3.local и kuma-4.local), пример файла инвентаря: https://box.kaspersky.com/f/bf06497b5b004dc3b1e5/ Другие примеры инвентарей: https://box.kaspersky.com/d/b397490dc08048acb671/
- В распределенной установке kuma в секции инвентаря kuma_core нужно указать хост, который есть в роли worker (один из двух)
- ВАЖНО! Для успешной установки должны быть соблюдены следующие требования:
- все машины кластера должны быть добавлены в /etc/hosts;
- установлены пакеты в соответствии с: https://support.kaspersky.com/help/KUMA/2.1/ru-RU/244399.htm;
- На Astra Linux на машине балансировщика нужно установить в дополнение пакету nginx еще один пакет libnginx-mod-stream
- в /var/lib/ должно быть не менее 32GB свободного места;
- Значение переменных в инвентаре ansible:
- need_transfer – установка KUMA 2.1 происходит поверх предыдущей версии?;
- airgap - значение неважно, может отсутствовать;
- low_resources – использовать минимальные ресурсы для разворачивания? Отсутсвует по умолчанию. (Достаточно ресурсов: 2 CPU 4 RAM, НО при этом создается том хранения 4 Гб, без этого параметра том создается 512 Гб)
- для части инвентаря kuma_k0s и переменных ansible_host важно указывать IP адреса.
- Создайте резервную копию ресурсов и сертификатов, см. советующий раздел в этой инструкции.
- Распакуйте архив (операции выполняются на ядре системы KUMA):
tar -xvf kuma-ansible-installer-(ВЕРСИЯ).tar.gz
- Перейдите в распакованную папку:
cd kuma-ansible-installer
- Добавить файл лицензии в папку kuma-ansible-installer/roles/kuma/files и переименовать на license.key:
cp ПУТЬ_ДО_КЛЮЧА*.key roles/kuma/files/license.key
- Выполните команду копирования шаблона (пример заполненного файла в п. 0):
cp k0s.inventory.yml.template k0s.inventory.yml
- ВАЖНО! Регистр написания хостнеймов в inventory должен совпадать с выводом значения на хостах команды
hostname -f
- ВАЖНО! Хостнейм при команде
hostname -f
должен содержать хотя бы одну точку, пример: kuma.local - Входим в ОС из-под суперпользователя (root), если это не было сделано ранее:
sudo -i
- Запустите установку:
./install.sh k0s.inventory.yml
- Зайдите на веб интерфейс ядра KUMA по одному из адресов рабочих узлов или балансировщика, например, в нашем случае это - https://192.168.0.153:7220
- Для начального администрирования кластера воспользуйтесь командами этого раздела.
В случае, если при установке произошел сбой, перед последующей установкой рекомендуется выполнить uninstall.sh и перезагрузить все узлы кластера. Если uninstall выполнить нельзя (идет миграция существующей установки в кластер), то перед повторной попыткой установки нужно вручную выполнить команду sudo k0s reset на всех узлах кластера и перезагрузить их
Перестроение между воркерами в кластере Kubernetes происходит с таймаутом ~ 5 мин
Отказоустойчивость балансировщиков, пример - https://www.nginx.com/products/nginx/high-availability/
Для работы с кластером можно использовать команды и инструменты отсюда
Видео установки в конфигурации AiO-1LB-1CP-2W тут