Тема
Внимание!
Вы можете использовать данный метод установки в официально не поддерживаемые облачные или виртуальные среды с соответствующими рисками, которые вы берете на себя. Например для тестирования host agent агента или облачного/виртуального провайдера.
Шаг 0. Подготовка к инсталляции платформы Боцман
Перед началом инсталляции платформы "Боцман" убедитесь, что выполнены все шаги по подготовке АРМ
Заметка
Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее
Шаг 1. Подготовка ОС
Подготовьте серверы и установите на них пакеты:
Выполните команду установки пакетов: conntrack ethtool ebtables socat open-iscsi nfs-common
bash
sudo apt install -y conntrack ethtool ebtables socat open-iscsi nfs-commonВыполните команду установки пакетов: iscsi-initiator-utils, socat, ebtables, ethtool, conntrack, nfs-utils
bash
sudo dnf -y install iscsi-initiator-utils socat ebtables ethtool conntrack nfs-utils
sudo systemctl enable --now iscsidВыполните команду установки пакетов: conntrack ethtool ebtables socat open-iscsi nfs-common
bash
sudo apt install -y conntrack ethtool ebtables socat open-iscsi nfs-commonШаг 2. Установка host-agent
Установите host-agent боцмана из комплекта поставки на каждый узел.
Используйте файлы из комплекта поставки в зависимости от используемой ОС:
byoh-agent-{++version++}.debbyoh-agent-{++version++}-1.el7.x86_64.rpmbyoh-agent-{++version++}.debПроизвести установку на каждом узле:
bash
sudo dpkg --install /home/bootsman/byoh-agent-{++version++}-amd64.debbash
sudo rpm -U /home/bootsman/byoh-agent-{++version++}-1.el7.x86_64.rpmbash
sudo dpkg --install /home/bootsman/byoh-agent-{++version++}-amd64.debНастройка ролей будущих узлов
Роли
Использование ролей является не обязательным условием для работы платформы, но может быть полезно в долгоживущих кластерах.
Внимание!
В случае использования ролей, в будущем для обновления кластера вам потребуется по 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.yamlyaml
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)- Версия Kubernetes. Поддерживаемые версии
- Имя пользователя в репозитории образов.
Если установка будет производится online блок registry можно удалить - Пароль для пользователя в репозитории образов.
Если установка будет производится online блок registry можно удалить - URL вашего репозитория образов.
Если установка будет производится online блок registry можно удалить - Это служебный параметр, всегда будет false
- Список ssh-ключей, которые будут добавлены на узлы
- Блок адресов для Pods.
Должен не пересекаться с другими блоками внутри одного Kubernetes кластера.
Минимальный размер блока /16
Пример:podsCidrBlocks: ["172.20.0.0/16"] - Блок адресов для Service.
Должен не пересекаться с другими блоками внутри одного Kubernetes кластера.
Минимальный размер блока /16
Пример:servicesCidrBlocks: ["172.21.0.0/16"] - IP адрес АРМ администратора
- IP-адрес балансировщика kube-apiserver для обеспечения отказоустойчивости.
Адрес должен быть свободен и не состоять в dhcp-пулах Подробнее - Количество узлов с ролью master.
Может принимать значения 3 или 5 - Лейбл должен соответствовать указателю в
host-agent. Указать, в случае настройки агентов с лейблами - Число узлов в workerpool. Сумма узлов во всех workerpool должна быть >=3
- Лейбл должен соответствовать указателю в
host-agent. Указать, в случае настройки агентов с лейблами - Первоначальный пароль от web портала
- URL, по которому будет доступен web портал платформы
- Дополнительный адрес АРМ администратора. Опционально. Для доступа в Kind кластеру с сторонней машины
- Порт kube-api. По-умолчанию 6443
- Порт kube-api. По-умолчанию 6443
- Таймаут на все действия bootsmanctl
- Таймаут по-умолчанию для всех операций
- Интервал по-умолчанию для всех операций
- Таймаут на создание или обновление объектов
- Интервал повторной попытки создания или обновления объектов
Заметка
Pod и Service cidr можно изменить, следуя правилам: маска блоков должна быть не менее 16, блоки не должны пересекаться
Шаг 4. Запуск установки
Заметка
Установка платформы "Боцман" запускается с заранее подготовленным АРМ
Выполните команду запуска процесса установки:
./bootsmanctl mgmt create {++cluster-name++} -i baremetal -c bootsman.config.yaml(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)


login: admin
password: {++ADDONS_RANCHER_BOOTSTRAPPASSWORD++} (2)- Адрес web-панели содержится в опции ADDONS_RANCHER_WEBHOSTNAME
- Пароль для доступа в web-панель содержится в опции ADDONS_RANCHER_BOOTSTRAPPASSWORD
Вы авторизовались под пользователем admin. Далее рекомендуем сменить этот пароль с помощью стандартного меню управления пользователями.