Перейти к содержимому

Внимание!

Вы можете использовать данный метод установки в официально не поддерживаемые облачные или виртуальные среды с соответствующими рисками, которые вы берете на себя. Например для тестирования host agent агента или облачного/виртуального провайдера.

Шаг 0. Подготовка к инсталляции платформы Боцман ​

Перед началом инсталляции платформы "Боцман" убедитесь, что выполнены все шаги по подготовке АРМ

Заметка

Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее

Шаг 1. Подготовка ОС ​

Подготовьте серверы и установите на них пакеты:

Шаг 2. Установка host-agent ​

Установите host-agent боцмана из комплекта поставки на каждый узел.
Используйте файлы из комплекта поставки в зависимости от используемой ОС:

Произвести установку на каждом узле:

Настройка ролей будущих узлов ​

Роли

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

Внимание!

В случае использования ролей, в будущем для обновления кластера вам потребуется по 1 дополнительному свободному узлу для каждой из использованной роли.

Добавьте ролевую метку на каждый узел.

bash
export ROLE={++NODE_ROLE++}
sudo sed -i "s#ExecStart=\"/usr/bin/byoh-agent\"#ExecStart=\"/usr/bin/byoh-agent\" --label role=${ROLE}#" /usr/lib/systemd/system/host-agent.service

Проверяем результат:

bash
cat /usr/lib/systemd/system/host-agent.service

Итоговый сервис должен иметь вид:

bash
[Unit]
Description=host-agent service
After=network-online.target
[Service]
Type=simple
WorkingDirectory=/root/.byoh
ExecStart=/usr/bin/byoh-agent --label role=master
User=root
Group=root
Restart=always
[Install]
WantedBy=multi-user.target

Выполните команду сохранения полученного результата и перезапуска агента:

bash
systemctl daemon-reload && systemctl restart host-agent

Шаг 3. Подготовка конфигурационного файла (bootsman.config.yaml) ​

На АРМ создайте конфиг файл bootsman.config.yaml в той же директории, где расположен инсталлятор-bootsmanctl

bash
touch bootsman.config.yaml

И откройте его для редактирования любым текстовом редакторе, например nano:

bash
nano bootsman.config.yaml
yaml
kubernetesVersion: {++KUBERNETES_VERSION++} (1)
# Раскоментируйте блок в случае airgap установки
# registry:
#  username: {++PRIVATE_REGISTRY_USERNAME++} (2)
#  password: {++PRIVATE_REGISTRY_PASSWORD++} (3)
#  path: {++PRIVATE_REGISTRY_URL++} (4)
#  insecure: {++PRIVATE_REGISTRY_INSECURE++} (5)
sshAuthorizedKeys: (6)
  - ssh-ed25519 AAAAC3NzaC1lZKKtLOCNv2g bootsman@stsoft.ru
wait:
  clusterCtlTimeout: 30m0s (20)
  operationTimeout: 40m0s (21)
  operationRetryInterval: 15s (22)
  objCreateTimeout: 4m0s (23)
  objCreateInterval: 5s (24)
infrastructure:
  clusterNetwork:
    podCidrBlocks: ["{++POD_CIDR++}"] (7)
    servicesCidrBlocks: ["{++SERVICE_CIDR++}"] (8)
  baremetalProxy:
    currentIp: {++CURRENT_MACHINE_IP++} (9)
    currentPort: {++KUBE_API_PORT++} (18)
controlPlane:
  endpoint:
    host: {++K8SCPIP++} (10)
    port: {++KUBE_API_PORT++} (19)
  replicas: {++KCP_REPLICAS++} (11)
  label: {++CONTROLPLANE_LABEL++} (12)
  kubeletExtraArgs: {}
workerPool:
  replicas: {++WORKER_REPLICAS++} (13)
  label: {++WORKER_LABEL++} (14)
  kubeletExtraArgs: {}
web:
  bootstrapPassword: {++ADDONS_RANCHER_BOOTSTRAPPASSWORD++} (15)
  hostname: {++ADDONS_RANCHER_WEBHOSTNAME++} (16)
currentMachineIp: {++CURRENT_MACHINE_IP_2++} (17)
  1. Версия Kubernetes. Поддерживаемые версии
  2. Имя пользователя в репозитории образов.
    Если установка будет производится online блок registry можно удалить
  3. Пароль для пользователя в репозитории образов.
    Если установка будет производится online блок registry можно удалить
  4. URL вашего репозитория образов.
    Если установка будет производится online блок registry можно удалить
  5. Это служебный параметр, всегда будет false
  6. Список ssh-ключей, которые будут добавлены на узлы
  7. Блок адресов для Pods.
    Должен не пересекаться с другими блоками внутри одного Kubernetes кластера.
    Минимальный размер блока /16
    Пример:
    podsCidrBlocks: ["172.20.0.0/16"]
  8. Блок адресов для Service.
    Должен не пересекаться с другими блоками внутри одного Kubernetes кластера.
    Минимальный размер блока /16
    Пример:
    servicesCidrBlocks: ["172.21.0.0/16"]
  9. IP адрес АРМ администратора
  10. IP-адрес балансировщика kube-apiserver для обеспечения отказоустойчивости.
    Адрес должен быть свободен и не состоять в dhcp-пулах Подробнее
  11. Количество узлов с ролью master.
    Может принимать значения 3 или 5
  12. Лейбл должен соответствовать указателю в host-agent. Указать, в случае настройки агентов с лейблами
  13. Число узлов в workerpool. Сумма узлов во всех workerpool должна быть >=3
  14. Лейбл должен соответствовать указателю в host-agent. Указать, в случае настройки агентов с лейблами
  15. Первоначальный пароль от web портала
  16. URL, по которому будет доступен web портал платформы
  17. Дополнительный адрес АРМ администратора. Опционально. Для доступа в Kind кластеру с сторонней машины
  18. Порт kube-api. По-умолчанию 6443
  19. Порт kube-api. По-умолчанию 6443
  20. Таймаут на все действия bootsmanctl
  21. Таймаут по-умолчанию для всех операций
  22. Интервал по-умолчанию для всех операций
  23. Таймаут на создание или обновление объектов
  24. Интервал повторной попытки создания или обновления объектов

Заметка

Pod и Service cidr можно изменить, следуя правилам: маска блоков должна быть не менее 16, блоки не должны пересекаться

Шаг 4. Запуск установки ​

Заметка

Установка платформы "Боцман" запускается с заранее подготовленным АРМ

Выполните команду запуска процесса установки:

./bootsmanctl mgmt create {++cluster-name++} -i baremetal -c bootsman.config.yaml(1)
  1. cluster-name - Имя управляющего кластера

Вывод инсталляции должен окончиться так:

bash
2023-09-10T17:49:46Z | INFO  | finished

Неудачная инсталляция

В случае, если установка не произвелась или прервалась потребуется сделать еще одну попытку. Для новой попытки необходимо:

  • Откатить машины с помощью снапшота или очистить следуя инструкции
  • Удалить файлы инсталляции на АРМ администратора
    bash
    ./bootsmanctl mgmt delete <mark>cluster-name</mark>
  • Если лицензия была установлена в env операционной системы - удостовериться в ее наличии
    bash
    env | grep LICENSE

Доступ в интерфейс ​

Для успешного доступа в интерфейс нужно добавить запись в ваш DNS-сервер.
Запись состоит из двух параметров: IP-адрес одного из узлов роли worker и доменное имя(Оно указывалось в bootsman.config.yaml в виде опции ADDONS_RANCHER_WEBHOSTNAME).

После добавления записи, произведите вход в web-панель (1)

loginlogin

login: admin
password: {++ADDONS_RANCHER_BOOTSTRAPPASSWORD++} (2)
  1. Адрес web-панели содержится в опции ADDONS_RANCHER_WEBHOSTNAME
  2. Пароль для доступа в web-панель содержится в опции ADDONS_RANCHER_BOOTSTRAPPASSWORD

Вы авторизовались под пользователем admin. Далее рекомендуем сменить этот пароль с помощью стандартного меню управления пользователями.

Команда Боцман