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

13 октября 2026

ID 320996

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Убедитесь, что выполняются следующие условия:
  2. Выключите модуль SELinux:
    1. Откройте конфигурационный файл:

      sudo vi /etc/selinux/config

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

      SELINUX=enforcing

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

      SELINUX=disabled

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

      sudo reboot

  3. Задайте имя хоста. Мы рекомендуем указывать полное доменное имя (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

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

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

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

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

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

  5. Настройте синхронизацию времени с 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, пропустите следующий шаг.

  6. Если вы планируете развертывание в кластере 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 в зависимости от выбранного типа конфигурации:

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