Развертывание кластера Kubernetes
До установки R-Vision SIEM необходимо развернуть кластер Kubernetes.
Это руководство описывает процесс офлайн-установки кластера Kubernetes в окружении РЕД ОС с использованием автономного установщика на базе Kubespray. Для установки в окружении других ОС с использованием подключения к Интернету обратитесь к документации производителей ОС, например: |
Подготовка зависимостей
Необходимые архивы
Для установки потребуется архив kubespray-installer-redos.tar.gz для РЕД ОС. Его можно скачать из файлового хранилища R-Vision.
Если у вас есть скачанный установщик системы, архив можно загрузить из его меню. Для этого:
|
Архив с установочным файлом kubespray-installer-redos.tar.gz необходимо загрузить во временную директорию /tmp
.
Распаковка архива
Выполните следующие шаги на управляющем узле или машине администратора:
-
Загрузите файл kubespray-installer-redos.tar.gz в директорию на сервер, на котором будет производиться установка:
Пример 1. Для Windowspscp "путь\к\файлу\kubespray-installer-redos.tar.gz" user@server:<installation_dir>
Пример 2. Для Linux или macOSscp путь\к\файлу\kubespray-installer-redos.tar.gz user@server:<installation_dir>
-
Распакуйте архив с установочными файлами. Используйте следующие команды:
cd <installation_dir> tar xvfz kubespray-installer-redos.tar.gz
Здесь:
-
<installation_dir>
— директория, в которой будет производиться установка (будет размещен файл дистрибутива siem-<номер версии>.run).
Установка кластера Kubernetes
Чтобы избежать ошибок разрешения имен, перед развертыванием кластера отключите использование IPv6, выполнив следующие действия на каждом узле кластера:
|
Настройка SSH-доступа
Проверьте возможность подключения по SSH-ключу к каждому узлу кластера:
ssh <FQDN_addr>
Здесь:
-
<FQDN_addr>
— FQDN-адрес текущего узла.
Чтобы узнать FQDN-адрес текущего узла, выполните команду: hostname -f .
|
Если подключение по SSH-ключу не настроено, сгенерируйте ключи и добавьте открытый ключ на каждый узел:
ssh-keygen
ssh-copy-id <user>@<FQDN_addr>
Установка утилит
На каждом узле установите утилиты, требуемые для подключения к кластеру:
sudo dnf install bash-completion vim telnet chrony jq htop tcpdump zip unzip rsync ebtables ethtool conntrack -y
Синхронизация времени с NTP-сервером
Настройте синхронизацию времени с корпоративным NTP-сервером, выполнив следующие команды на каждом узле кластера:
sudo timedatectl set-ntp true
sudo sed -i "/^server /d" /etc/chrony.conf
sudo bash -c 'echo "server <time_server>" >> /etc/chrony.conf'
sudo systemctl enable --now chronyd
sudo systemctl restart chronyd
sudo systemctl status chronyd
chronyc sources
Здесь:
-
<time_server>
— адрес корпоративного сервера времени (например,ntp.rvision.local
).
Запуск скрипта установки
Скрипт принимает следующие переменные окружения:
Переменная | Описание |
---|---|
|
Запрос пароля для подключения к узлам по SSH. |
|
Пользователь для подключения к узлам по SSH. |
|
Пароль для подключения к узлам по SSH. |
|
Запрос пароля для повышения до sudo. |
|
Уровень детализации логирования (0-4). По умолчанию установлен минимальный уровень детализации (0). |
Пример запуска с переменными окружения:
ANSIBLE_USER=username ANSIBLE_PASSWORD=password ./install.sh
По умолчанию скрипт установки запускается в интерактивном режиме, при котором отдельно запрашиваются FQDN-адреса для каждого узла кластера и путь до директории с данными containerd. Чтобы отключить интерактивность скрипта установки, необходимо сразу передать эти данные при его запуске с помощью следующих переменных окружения:
Переменная | Описание |
---|---|
|
Список FQDN-адресов управляющих узлов через пробел. |
|
Список FQDN-адресов рабочих узлов через пробел. |
|
Путь к директории с данными containerd (по умолчанию |
Пример запуска в неинтерактивном режиме:
ANSIBLE_USER=username ANSIBLE_PASSWORD=password MASTER_NODES="m01.example.com" WORKER_NODES="w01.example.com w02.example.com" CONTAINERD_ROOT="/var/lib/containerd" ./install.sh
Если пользователь не имеет права записи в корневой каталог, установщик необходимо запускать через sudo
:
sudo ANSIBLE_USER=username ANSIBLE_PASSWORD=password MASTER_NODES="m01.example.com" WORKER_NODES="w01.example.com w02.example.com" CONTAINERD_ROOT="/var/lib/containerd" ./install.sh