05 ноября 2026
ID 320996
Подготовка к установке
Эта инструкция является частью сценария развертывания и первоначальной настройки.
Перед установкой KUMA необходимо подготовить инфраструктуру и настроить доступ между машинами.
Подготовка состоит из двух этапов:
- Подготовка инфраструктуры: настройка контрольной и целевых машин, включая системные параметры, сеть и синхронизацию времени.
- Генерация SSH-ключей и настройка доступа: обеспечение подключения с контрольной машины к целевым по SSH для выполнения установки.
Далее приведены инструкции для каждого этапа:
Подготовка инфраструктуры
Развертывание KUMA выполняется централизованно и предполагает четкое разделение ролей между машинами: контрольная и целевые машины.
Контрольная машина – это хост, с которого выполняется установка. На контрольной машине запускается установщик Ansible, который по SSH подключается к другим серверам и управляет процессом развертывания компонентов.
Целевые машины – это серверы, на которые устанавливаются компоненты KUMA (Ядро KUMA, коллекторы, корреляторы, хранилище и другие сервисы).
Контрольная машина может одновременно выступать в роли целевой, если на ней также разворачиваются компоненты KUMA. В этом случае к ней применяются все требования, предъявляемые к целевым машинам. При развертывании KUMA в кластере Kubernetes не следует использовать узел с балансировщиком в качестве контрольной машины для запуска установщика KUMA.
Если контрольная машина является выделенной (например, ноутбук администратора) и не участвует в установке компонентов KUMA, на ней требуется настроить только синхронизацию времени (см. пункт 5 инструкции). Если контрольная машина используется как целевая, необходимо выполнить все шаги подготовки.
Чтобы подготовить целевые машины к развертыванию:
- Убедитесь, что выполняются следующие условия:
- Соблюдены аппаратные и программные требования к оборудованию, а также требования к устройствам с операционными системами Oracle Linux, Astra Linux, Ubuntu, РЕД ОС, M ОС. При развертывании KUMA в Kubernetes соблюдены требования к устройствам.
При установке на Astra Linux требуется предоставить пользователю высокий уровень целостности. Для этого выполните команду:
sudo pdpl-user -i 63 <имя пользователя, под которым устанавливается решение>
- Доступны сетевые порты, которые KUMA займет при установке.
- Соблюдены аппаратные и программные требования к оборудованию, а также требования к устройствам с операционными системами Oracle Linux, Astra Linux, Ubuntu, РЕД ОС, M ОС. При развертывании KUMA в Kubernetes соблюдены требования к устройствам.
- В целях безопасности вам нужно убедиться, что на хостах c установленными компонентами KUMA операционная система Linux не содержит уязвимость CVE-2026-98432. Перейдите по ссылке, чтобы проверить версии ядра Linux, в которых найдена уязвимость. Если требуется, установите обновления вашей операционной системы Linux для закрытия указанной уязвимости.
Если компоненты KUMA установлены на серверах, на которых обновить ядро Linux невозможно, на каждом из таких серверов рекомендуется выполнить следующие действия:
- Отключите MPTCP в ядре Linux. Для этого выполните следующее:
- Откройте на редактирование файл
/etc/sysctl.d/99-local.conf. - Добавьте строку
sysctl -w net.mptcp.enabled=0. - Примените изменения, выполнив команду:
sysctl -p /etc/sysctl.d/99-local.conf
- Откройте на редактирование файл
- Проверьте, что новое значение параметра применено. Для этого выполните команду:
sysctl net.mptcp.enabled
Если команда возвращает
net.mptcp.enabled = 0, новое значение применено, параметр выключен.
Если вы обновите ядро операционной системы до версии, в которой указанная уязвимость не найдена, этот параметр можно снова включить.
- Отключите MPTCP в ядре Linux. Для этого выполните следующее:
- Выключите модуль SELinux:
- Откройте конфигурационный файл:
sudo vi /etc/selinux/config
- Найдите следующую строку:
SELINUX=enforcing
- Замените значение параметра на
disabled:SELINUX=disabled
- Сохраните изменения и выйдите из редактора.
- Перезагрузите сервер:
sudo reboot
- Откройте конфигурационный файл:
- Задайте имя хоста. Мы рекомендуем указывать полное доменное имя (FQDN), например
kuma1.example.com:sudo hostnamectl set-hostname kuma1.example.com
Имя хоста используется при формировании файла инвентаря. Имя хоста может начинаться с цифры, если это соответствует принятой в организации схеме именования. Однако для работы сервисов KUMA с Raft нужно имя хоста, которое не начинается с цифры.
Если имя хоста начинается с цифры, переименовывать сервер необязательно. Настройте дополнительное имя, начинающееся с буквы, выполнив следующие действия:
- В файле
/etc/hostsдобавьте запись:<IP> <new_fqdn> <fqdn> <hostname>
где:
<IP>– IP-адрес сервера;<new_fqdn>– дополнительное имя хоста;<fqdn>– исходное FQDN;<hostname>– короткое имя хоста. - На DNS-сервере создайте CNAME-запись, в которой
<new_fqdn>указывает на<fqdn>.
При необходимости для развертывания на одном сервере, распределенного развертывания и развертывания в кластере Raft имя хоста можно изменить после установки KUMA. Также имя хоста будет использоваться при выпуске сертификатов сервисами.
Чтобы проверить и получить текущее имя хоста, выполните следующую команду:
hostname -f
Контрольная машина должна иметь возможность обращаться к целевой машине по этому имени.
- В файле
- Зарегистрируйте имя хоста в сети. Для того чтобы контрольная машина могла подключаться к целевым по FQDN, необходимо настроить преобразование имен хостов в IP-адреса одним из следующих способов:
- Если используется DNS-сервер, добавьте записи для каждой целевой машины в DNS-зону. Настройка параметров DNS-зоны зависит от реализации DNS-сервера, используемого в инфраструктуре. Для регистрации имен хостов в зонах DNS необходимо обратиться к администраторам серверов DNS вашей организации.
- Если DNS-сервер отсутствует, вы можете использовать для преобразования имен файл
/etc/hosts. Файл/etc/hostsдолжен содержать записи для всех хостов KUMA и быть одинаковым или согласованным на всех целевых машинах.При развертывании KUMA в кластере Kubernetes использовать файл
/etc/hostsневозможно.В первом столбце указывается IP-адрес хоста, во втором – полное доменное имя (FQDN), в третьем – короткое имя хоста.
- Настройте синхронизацию времени с NTP-сервером на всех целевых машинах. Ниже приведен пример настройки синхронизации времени. Реализация настройки может отличаться в зависимости от используемой операционной системы и выбранного NTP-клиента (например, chrony, ntpd, systemd-timesyncd и другие). Выберите и настройте подходящий вариант в соответствии с вашей инфраструктурой.
- Установите chrony с помощью следующей команды:
sudo apt install chrony
В этом примере используется пакетный менеджер apt, применяемый в системах на базе Debian (например, Ubuntu). Для других дистрибутивов Linux команды установки могут отличаться. Используйте соответствующий пакетный менеджер вашей системы.
- Убедитесь, что виртуальная машина имеет доступ в интернет. Если доступ есть, перейдите к следующему шагу.
Если доступ отсутствует, в файле
/etc/chrony.confизмените значение2.pool.ntp.orgна имя или IP-адрес внутреннего NTP-сервера вашей организации. - Запустите сервис синхронизации системного времени, выполнив следующую команду:
sudo systemctl enable --now chrony
Затем выполните следующую команду:
sudo timedatectl | grep 'System clock synchronized'
Если системное время синхронизировано верно, вывод будет содержать строку
System clock synchronized: yes.Настройка синхронизации времени с NTP-сервером завершена. Если выбранная вами конфигурация развертывания KUMA не предполагает использования кластера Kubernetes, пропустите следующий шаг.
- Установите chrony с помощью следующей команды:
- Если вы планируете развертывание в кластере Kubernetes, убедитесь, что на целевых машинах дополнительно выполнены следующие условия:
- Не используются IP-адреса из следующих блоков Kubernetes, поскольку IP-адресов из блоков исключен трафик на прокси-серверы:
- serviceCIDR: 10.96.0.0/12
- podCIDR: 10.244.0.0/16
- Каждый хост имеет уникальный идентификатор, хранящийся в файле
/etc/machine-id. - На хостах поддерживается cgroup v2.
Вы можете проверить, поддерживается ли cgroup v2 на целевых хостах, с помощью следующей команды:
sudo stat -fc %T /sys/fs/cgroup/
Ожидаемый ответ:
cgroup2.Если команда возвращает любое другое значение, хост не соответствует требованиям для установки k0s. Необходимо включить или настроить поддержку cgroup v2 в операционной системе.
- На хостах установлен и включен инструмент для управления межсетевым экраном firewalld или uwf для внесения правил сетевой фильтрации в iptables.
- Установлен и настроен балансировщик нагрузки NGINX.
Вы можете установить балансировщик с помощью одной из следующих команд:
Для операционной системы Oracle Linux
sudo yum install nginx
Для операционной системы Astra Linux
sudo apt install nginx-full
Для операционной системы Ubuntu
sudo apt install nginx libnginx-mod-stream
Для операционной системы РЕД ОС
sudo yum install nginx nginx-all-modules
Если вы хотите, чтобы балансировщик нагрузки NGINX был настроен автоматически в процессе установки KUMA, установите балансировщик нагрузки NGINX и откройте к нему доступ по SSH так же, как для хостов кластера Kubernetes (см. ниже). Дополнительные сведения см. в документации NGINX.
Целевые машины готовы к развертыванию KUMA.
- Не используются IP-адреса из следующих блоков Kubernetes, поскольку IP-адресов из блоков исключен трафик на прокси-серверы:
Генерация ключей и настройка доступа
Для корректной работы установщика Ansible, запускаемого с контрольной машины, нужно обеспечить доступ по SSH к целевым машинам. Это требуется, чтобы установщик Ansible мог подключаться к серверам, копировать файлы, разворачивать компоненты KUMA и применять конфигурацию.
Доступ по SSH настраивается с помощью ключей аутентификации. Ключи позволяют устанавливать соединение без ввода пароля и обеспечивают защищенное соединение между контрольной и целевыми машинами.
На контрольной машине выполните следующие действия:
- Сгенерируйте пару SSH-ключей для аутентификации на SSH-серверах целевых машин, выполнив следующую команду:
sudo ssh-keygen -f /root/.ssh/id_rsa -N "" -C kuma-ansible-installer
В результате на контрольной машине будут созданы ключи:
- Закрытый ключ
/root/.ssh/id_rsa. - Открытый ключ
/root/.ssh/id_rsa.pub.
Если на контрольной машине заблокирован root-доступ по SSH, сгенерируйте пару SSH-ключей для аутентификации на SSH-серверах целевых машин с помощью пользователя из группы sudo:
ssh-keygen -f /home/<имя пользователя из группы sudo>/.ssh/id_rsa -N "" -C kuma-ansible-installer
В этом случае ключи будут сохранены в директории .ssh домашней директории указанного пользователя.
Если SSH-ключ хранится по пути, отличному от указанного в команде генерации, укажите полный путь к закрытому ключу на контрольной машине в качестве значения параметра
ansible_ssh_private_key_fileв секцииkuma: vars:файла инвентаря. Ansible будет использовать этот ключ для подключения к целевым машинам. - Закрытый ключ
- Убедитесь, что контрольная машина имеет сетевой доступ ко всем целевым машинам по имени хоста.
- Настройте аутентификацию по SSH-ключу на каждой целевой машине:
- Если для подключения используется пользователь root, скопируйте открытый SSH-ключ
/root/.ssh/id_rsa.pubс контрольной машины и добавьте его в файл/root/.ssh/authorized_keysна каждой целевой машине (в том числе на контрольной, если контрольная машина выполняет роль целевой).sudo ssh-copy-id -i /root/.ssh/id_rsa.pub root@<имя хоста целевой машины>
- Если для подключения используется пользователь из группы sudo, скопируйте открытый SSH-ключ
/home/<имя пользователя>/.ssh/id_rsa.pubс контрольной машины и добавьте его в файл/home/<имя пользователя>/.ssh/authorized_keysна каждой целевой машине (в том числе на контрольной, если контрольная машина выполняет роль целевой).ssh-copy-id -i /home/<имя пользователя>/.ssh/id_rsa.pub <имя пользователя>@<имя хоста целевой машины>
Закрытый ключ
/root/.ssh/id_rsaили/home/<имя пользователя>/.ssh/id_rsaдолжен оставаться на контрольной машине.На контрольной машине хранятся SSH-ключи, а на каждой целевой машине в
authorized_keysдобавлен соответствующий открытый ключ. Закрытый ключ на целевые машины не копируется. - Если для подключения используется пользователь root, скопируйте открытый SSH-ключ
- Проверьте подключение к каждой целевой машине:
- Если используется пользователь root:
ssh root@<имя хоста целевой машины>
- Если используется пользователь из группы sudo:
ssh <имя пользователя>@<имя хоста целевой машины>
После успешной аутентификации откроется SSH-сессия на целевой машине.
- Если используется пользователь root:
Подготовительный этап завершен. Вы можете переходить к установке KUMA в зависимости от выбранного типа конфигурации: