13 октября 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 соблюдены требования к устройствам.
- Выключите модуль 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 в зависимости от выбранного типа конфигурации: