Подготовка к установке
Скопировано

05 ноября 2026

ID 320996

Подготовка к установке

Эта инструкция является частью сценария развертывания и первоначальной настройки.

Перед установкой KUMA необходимо подготовить инфраструктуру и настроить доступ между машинами.

Подготовка состоит из двух этапов:

  1. Подготовка инфраструктуры: настройка контрольной и целевых машин, включая системные параметры, сеть и синхронизацию времени.
  2. Генерация SSH-ключей и настройка доступа: обеспечение подключения с контрольной машины к целевым по SSH для выполнения установки.

Далее приведены инструкции для каждого этапа:

Подготовка инфраструктуры

Развертывание KUMA выполняется централизованно и предполагает четкое разделение ролей между машинами: контрольная и целевые машины.

Контрольная машина – это хост, с которого выполняется установка. На контрольной машине запускается установщик Ansible, который по SSH подключается к другим серверам и управляет процессом развертывания компонентов.

Целевые машины – это серверы, на которые устанавливаются компоненты KUMA (Ядро KUMA, коллекторы, корреляторы, хранилище и другие сервисы).

Контрольная машина может одновременно выступать в роли целевой, если на ней также разворачиваются компоненты KUMA. В этом случае к ней применяются все требования, предъявляемые к целевым машинам. При развертывании KUMA в кластере Kubernetes не следует использовать узел с балансировщиком в качестве контрольной машины для запуска установщика KUMA.

Если контрольная машина является выделенной (например, ноутбук администратора) и не участвует в установке компонентов KUMA, на ней требуется настроить только синхронизацию времени (см. пункт 5 инструкции). Если контрольная машина используется как целевая, необходимо выполнить все шаги подготовки.

Чтобы подготовить целевые машины к развертыванию:

  1. Убедитесь, что выполняются следующие условия:
  2. В целях безопасности вам нужно убедиться, что на хостах c установленными компонентами KUMA операционная система Linux не содержит уязвимость CVE-2026-98432. Перейдите по ссылке, чтобы проверить версии ядра Linux, в которых найдена уязвимость. Если требуется, установите обновления вашей операционной системы Linux для закрытия указанной уязвимости.

    Если компоненты KUMA установлены на серверах, на которых обновить ядро Linux невозможно, на каждом из таких серверов рекомендуется выполнить следующие действия:

    1. Отключите MPTCP в ядре Linux. Для этого выполните следующее:
      1. Откройте на редактирование файл /etc/sysctl.d/99-local.conf.
      2. Добавьте строку sysctl -w net.mptcp.enabled=0.
      3. Примените изменения, выполнив команду:

        sysctl -p /etc/sysctl.d/99-local.conf

    2. Проверьте, что новое значение параметра применено. Для этого выполните команду:

      sysctl net.mptcp.enabled

      Если команда возвращает net.mptcp.enabled = 0, новое значение применено, параметр выключен.

    Если вы обновите ядро операционной системы до версии, в которой указанная уязвимость не найдена, этот параметр можно снова включить.

  3. Выключите модуль SELinux:
    1. Откройте конфигурационный файл:

      sudo vi /etc/selinux/config

    2. Найдите следующую строку:

      SELINUX=enforcing

    3. Замените значение параметра на disabled:

      SELINUX=disabled

    4. Сохраните изменения и выйдите из редактора.
    5. Перезагрузите сервер:

      sudo reboot

  4. Задайте имя хоста. Мы рекомендуем указывать полное доменное имя (FQDN), например kuma1.example.com:

    sudo hostnamectl set-hostname kuma1.example.com

    Имя хоста используется при формировании файла инвентаря. Имя хоста может начинаться с цифры, если это соответствует принятой в организации схеме именования. Однако для работы сервисов KUMA с Raft нужно имя хоста, которое не начинается с цифры.

    Если имя хоста начинается с цифры, переименовывать сервер необязательно. Настройте дополнительное имя, начинающееся с буквы, выполнив следующие действия:

    1. В файле /etc/hosts добавьте запись:

      <IP> <new_fqdn> <fqdn> <hostname>

      где:

      <IP> – IP-адрес сервера;

      <new_fqdn> – дополнительное имя хоста;

      <fqdn> – исходное FQDN;

      <hostname> – короткое имя хоста.

    2. На DNS-сервере создайте CNAME-запись, в которой <new_fqdn> указывает на <fqdn>.

    При необходимости для развертывания на одном сервере, распределенного развертывания и развертывания в кластере Raft имя хоста можно изменить после установки KUMA. Также имя хоста будет использоваться при выпуске сертификатов сервисами.

    Чтобы проверить и получить текущее имя хоста, выполните следующую команду:

    hostname -f

    Контрольная машина должна иметь возможность обращаться к целевой машине по этому имени.

  5. Зарегистрируйте имя хоста в сети. Для того чтобы контрольная машина могла подключаться к целевым по FQDN, необходимо настроить преобразование имен хостов в IP-адреса одним из следующих способов:
    • Если используется DNS-сервер, добавьте записи для каждой целевой машины в DNS-зону. Настройка параметров DNS-зоны зависит от реализации DNS-сервера, используемого в инфраструктуре. Для регистрации имен хостов в зонах DNS необходимо обратиться к администраторам серверов DNS вашей организации.
    • Если DNS-сервер отсутствует, вы можете использовать для преобразования имен файл /etc/hosts. Файл /etc/hosts должен содержать записи для всех хостов KUMA и быть одинаковым или согласованным на всех целевых машинах.

      При развертывании KUMA в кластере Kubernetes использовать файл /etc/hosts невозможно.

      Пример файла /etc/hosts

      В первом столбце указывается IP-адрес хоста, во втором – полное доменное имя (FQDN), в третьем – короткое имя хоста.

  6. Настройте синхронизацию времени с NTP-сервером на всех целевых машинах. Ниже приведен пример настройки синхронизации времени. Реализация настройки может отличаться в зависимости от используемой операционной системы и выбранного NTP-клиента (например, chrony, ntpd, systemd-timesyncd и другие). Выберите и настройте подходящий вариант в соответствии с вашей инфраструктурой.
    1. Установите chrony с помощью следующей команды:

      sudo apt install chrony

      В этом примере используется пакетный менеджер apt, применяемый в системах на базе Debian (например, Ubuntu). Для других дистрибутивов Linux команды установки могут отличаться. Используйте соответствующий пакетный менеджер вашей системы.

    2. Убедитесь, что виртуальная машина имеет доступ в интернет. Если доступ есть, перейдите к следующему шагу.

      Если доступ отсутствует, в файле /etc/chrony.conf измените значение 2.pool.ntp.org на имя или IP-адрес внутреннего NTP-сервера вашей организации.

    3. Запустите сервис синхронизации системного времени, выполнив следующую команду:

      sudo systemctl enable --now chrony

      Затем выполните следующую команду:

      sudo timedatectl | grep 'System clock synchronized'

      Если системное время синхронизировано верно, вывод будет содержать строку System clock synchronized: yes.

      Настройка синхронизации времени с NTP-сервером завершена. Если выбранная вами конфигурация развертывания KUMA не предполагает использования кластера Kubernetes, пропустите следующий шаг.

  7. Если вы планируете развертывание в кластере Kubernetes, убедитесь, что на целевых машинах дополнительно выполнены следующие условия:
    1. Не используются IP-адреса из следующих блоков Kubernetes, поскольку IP-адресов из блоков исключен трафик на прокси-серверы:
      • serviceCIDR: 10.96.0.0/12
      • podCIDR: 10.244.0.0/16
    2. Каждый хост имеет уникальный идентификатор, хранящийся в файле /etc/machine-id.
    3. На хостах поддерживается cgroup v2.

      Вы можете проверить, поддерживается ли cgroup v2 на целевых хостах, с помощью следующей команды:

      sudo stat -fc %T /sys/fs/cgroup/

      Ожидаемый ответ: cgroup2.

      Если команда возвращает любое другое значение, хост не соответствует требованиям для установки k0s. Необходимо включить или настроить поддержку cgroup v2 в операционной системе.

    4. На хостах установлен и включен инструмент для управления межсетевым экраном firewalld или uwf для внесения правил сетевой фильтрации в iptables.
    5. Установлен и настроен балансировщик нагрузки 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.

      Пример автоматически созданной конфигурации NGINX

    Целевые машины готовы к развертыванию KUMA.

Генерация ключей и настройка доступа

Для корректной работы установщика Ansible, запускаемого с контрольной машины, нужно обеспечить доступ по SSH к целевым машинам. Это требуется, чтобы установщик Ansible мог подключаться к серверам, копировать файлы, разворачивать компоненты KUMA и применять конфигурацию.

Доступ по SSH настраивается с помощью ключей аутентификации. Ключи позволяют устанавливать соединение без ввода пароля и обеспечивают защищенное соединение между контрольной и целевыми машинами.

На контрольной машине выполните следующие действия:

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

  2. Убедитесь, что контрольная машина имеет сетевой доступ ко всем целевым машинам по имени хоста.
  3. Настройте аутентификацию по 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 добавлен соответствующий открытый ключ. Закрытый ключ на целевые машины не копируется.

  4. Проверьте подключение к каждой целевой машине:
    • Если используется пользователь root:

      ssh root@<имя хоста целевой машины>

    • Если используется пользователь из группы sudo:

      ssh <имя пользователя>@<имя хоста целевой машины>

    После успешной аутентификации откроется SSH-сессия на целевой машине.

Подготовительный этап завершен. Вы можете переходить к установке KUMA в зависимости от выбранного типа конфигурации:

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!