Установка кластера Kubernetes с помощью Kubespray
Данное руководство описывает процесс офлайн-установки кластера Kubernetes в окружении РЕД ОС с использованием автономного установщика на базе Kubespray. Для установки в окружении других ОС с использованием подключения к Интернету обратитесь к разделу Установка кластера Kubernetes вручную. |
Подготовка файлов установщика
Подготовка файлов установщика состоит из следующих этапов:
Скачивание архива установщика
Для установки потребуется архив kubespray-installer-redos.tar.gz для РЕД ОС. Его можно скачать из файлового хранилища R-Vision.
Если у вас есть скачанный установщик системы, архив можно загрузить из его меню. Для этого:
|
Архив с установочным файлом kubespray-installer-redos.tar.gz необходимо загрузить во временную директорию /tmp
.
Распаковка архива
Выполните следующие шаги на управляющем узле или машине администратора:
-
Загрузите файл kubespray-installer-redos.tar.gz в директорию на сервер, на котором будет производиться установка:
-
Для Windows:
pscp "<path_to_file>\kubespray-installer-redos.tar.gz" user@server:<installation_dir>
-
Для Linux или macOS
scp <path_to_file>/kubespray-installer-redos.tar.gz user@server:<installation_dir>
Здесь:
-
<path_to_file>
— путь к каталогу, где находится скачанный файл kubespray-installer-redos.tar.gz. -
<installation_dir>
— директория, в которой будет производиться установка (будет размещен файл дистрибутива evo.platform_<version>_satellite.run).
-
-
Распакуйте архив с установочными файлами с помощью следующих команд:
cd <installation_dir> tar xvfz kubespray-installer-redos.tar.gz
Здесь:
-
<installation_dir>
— директория, в которой будет производиться установка (будет размещен файл дистрибутива evo.platform_<version>_satellite.run).
-
Установка кластера Kubernetes
Установка кластера Kubernetes состоит из следующих этапов:
Чтобы избежать ошибок разрешения имен, перед развертыванием кластера отключите использование IPv6, выполнив следующие действия на каждом узле кластера:
|
Настройка SSH-доступа
Проверьте возможность подключения по SSH-ключу к каждому узлу кластера:
ssh <FQDN_addr>
Здесь:
-
<FQDN_addr>
— FQDN-адрес текущего узла.
Чтобы узнать FQDN-адрес текущего узла, выполните следующую команду:
|
Если подключение по 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