Шаг 0. Подготовка к инсталляции платформы Боцман
Перед началом инсталляции платформы "Боцман" убедитесь, что выполнены все шаги по подготовке:
Заметка
Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее
Шаг 1. Подготовка файла конфигурации (bootsman.config.yaml)
На АРМ создайте конфиг файл bootsman.config.yaml в той же директории, где расположен инсталлятор-bootsmanctl
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:
AddonHelmTimeout: 10m (37)
clusterCtlTimeout: 30m0s (38)
operationTimeout: 40m0s (39)
operationRetryInterval: 15s (40)
objCreateTimeout: 4m0s (41)
objCreateInterval: 5s (42)
infrastructure:
clusterNetwork:
podCidrBlocks: ["POD_CIDR"] (7)
servicesCidrBlocks: ["SERVICE_CIDR"] (8)
yandex:
auth:
keyFileLocation: KEY_FILE_LOCATION (9)
folderId: YANDEX_FOLDER_ID (10)
zone: YANDEX_ZONE (11)
network:
name: YANDEX_NETWORK_NAME (12)
useExisting: false (13)
subNetworks:
- availabilityZone: ru-central1-a (48)
# Раскомментируйте блок для использования существующей подсети
# id: YANDEX_SUBNETWORK_ID (50)
# useExisting: true
# Раскомментируйте блок для создания новой подсети
# name: YANDEX_SUBNETWORK_NAME (14)
# podCIDR: YANDEX_SUBNETWORK_CIDR (16)
privacy: YANDEX_PRIVACY (18)
controlPlane:
endpoint:
host:
port: KUBE_API_PORT (19)
replicas: KCP_REPLICAS (20)
label: master
kubeletExtraArgs:
kubeReserved: ""
systemReserved: ""
evictionHard: ""
evictionMinimumReclaim: ""
evictionMaxPodGracePeriod: ""
maxPods: ""
seccompDefault: ""
yandexMachine:
platformId: YANDEX_CONTROLPLANE_PLATFORM_ID (21)
cores: YANDEX_CONTROLPLANE_CORES (22)
memory: YANDEX_CONTROLPLANE_MEMORY (23)
diskType: YANDEX_CONTROLPLANE_DISK_TYPE (24)
diskSize: YANDEX_CONTROLPLANE_DISK_SIZE (25)
imageId: YANDEX_CONTROLPLANE_IMAGE_ID (26)
machineHealthCheck:
timeoutDuration: 10m0s (43)
maxUnhealthy: 100% (44)
workerPool:
replicas: WORKER_REPLICAS (27)
label: worker
kubeletExtraArgs:
kubeReserved: ""
systemReserved: ""
evictionHard: ""
evictionMinimumReclaim: ""
evictionMaxPodGracePeriod: ""
maxPods: ""
seccompDefault: ""
yandexMachine:
platformId: YANDEX_WORKER_PLATFORM_ID (28)
cores: YANDEX_WORKER_CORES (29)
memory: YANDEX_WORKER_MEMORY (30)
diskType: YANDEX_WORKER_DISK_TYPE (31)
diskSize: YANDEX_WORKER_DISK_SIZE (32)
imageId: YANDEX_WORKER_IMAGE_ID (33)
availabilityZones: (47)
- ru-central1-a (49)
machineHealthCheck:
timeoutDuration: 10m0s (45)
maxUnhealthy: 40% (46)
web:
bootstrapPassword: BOOTSMAN_WEB_BOOTSTRAPPASSWORD (34)
hostname: BOOTSMAN_WEB_HOSTNAME (35)
- Версия Kubernetes. Поддерживаемые версии
- Имя пользователя в репозитории образов.
Если установка будет производится online блок registry можно удалить
- Пароль для пользователя в репозитории образов.
Если установка будет производится online блок registry можно удалить
- URL вашего репозитория образов.
Если установка будет производится online блок registry можно удалить
- Это служебный параметр, всегда будет false
- Список ssh-ключей, которые будут добавлены на узлы
- Блок адресов для Pods.
Должен не пересекаться с другими блоками внутри одного Kubernetes кластера.
Допустимый размер блока /[1-20]
Пример:
podsCidrBlocks: ["172.20.0.0/16"] - Блок адресов для Service.
Должен не пересекаться с другими блоками внутри одного Kubernetes кластера.
Допустимый размер блока /[1-20]
Пример:
servicesCidrBlocks: ["172.21.0.0/16"] - Относительный путь до файла авторизации.
Рабочая директория .bootsmanctl.
- Директория в облаке Yandex.
Должна быть создана до запуска.
- Зона доступности облака Yandex.
- Имя сети Yandex Cloud.
Исключает установку YANDEX_NETWORK_ID
- true в случае использования существующего ресурса, false для создания нового
- Имя подсети Yandex Cloud.
Исключает установку YANDEX_SUBNETWORK_ID
- true в случае использования существующего ресурса, false для создания нового
- Адресное пространство для новой подсети Yandex Cloud
- true в случае использования существующего ресурса, false для создания нового
- Выбор режима взаимодействия с кластером.
Поддерживаемые значения Public, PrivateMachines, Private.
- Порт kube-api. По-умолчанию 6443
- Количество узлов с ролью master.
Может принимать значения 3 или 5
- Тип процессора.
- Число CPU.
- Объём оперативной памяти. Измеряется в GB.
- Тип дисков.
- Объём дискового пространства. Измеряется в GB.
- ID образа операционной системы.
Подготовьте ОС в соответствии с инструкцией или используйте уже подготовленные образа
- Число узлов в workerpool. Сумма узлов во всех workerpool должна быть >=3
- Тип процессора.
- Число CPU .
- Объём оперативной памяти. Измеряется в GB.
- Тип дисков.
- Объём дискового пространства. Измеряется в GB.
- ID образа операционной системы.
Подготовьте ОС в соответствии с инструкцией или используйте уже подготовленные образа
- Первоначальный пароль от web портала
- Доменное имя, по которому будет доступен web портал платформы.
Имя должно иметь запись на DNS-сервере.
Нельзя использовать Hosts
Нельзя указывать IP-адрес
- blob
- {{ no such element: dict object['AddonHelmTimeout'] }}
- Таймаут на все действия bootsmanctl
- Таймаут по-умолчанию для всех операций
- Интервал по-умолчанию для всех операций
- Таймаут на создание или обновление объектов
- Интервал повторной попытки создания или обновления объектов
- Время, которое дается узлу на самостоятельное восстановление, прежде чем вмешается MachineHealthCheck.
По-умолчанию 10m
- Пороговое значение для MachineHealthCheck, при превышении которого не будет выполняться исправления.
Для узлов с ролью master, значение по-умолчанию 100%.
Для узлов с ролью worker, значение по-умолчанию 40%
- Время, которое дается узлу на самостоятельное восстановление, прежде чем вмешается MachineHealthCheck.
По-умолчанию 10m
- Пороговое значение для MachineHealthCheck, при превышении которого не будет выполняться исправления.
Для узлов с ролью master, значение по-умолчанию 100%.
Для узлов с ролью worker, значение по-умолчанию 40%
- Список зон, в которых будут размещены узлы кластера.
Является неизменяемым параметром.
Каждой зоне должна соответствовать своя подсеть(SubNetwork)
- Зона Yandex Cloud.
- Зона Yandex Cloud.
- ID подсети в Yandex Cloud
Пример заполненного файла конфигурации:
kubernetesVersion: "v1.28.4"
registry:
username: demo
password: demo
path: redos-quay.stsoft.lan/bootsman-v210
insecure: true
sshAuthorizedKeys:
- ssh-ed25519 AAAAC3NzaC1lZKKtLOCNv2g bootsman@stsoft.ru
wait:
clusterCtlTimeout: 50m0s
operationTimeout: 40m0s
operationRetryInterval: 15s
objCreateTimeout: 4m0s
objCreateInterval: 5s
infrastructure:
yandex:
auth:
keyFileLocation: "key.json.bootsmanctl"
folderId: b1gvs031ueof1otylrqr
network:
name: default-1
useExisting: false
subNetworks:
- name: default-1
availabilityZone: ru-central1-a
podCIDR: 10.200.0.0/24
privacy: Public
clusterNetwork:
podCidrBlocks: ["172.20.0.0/16"]
servicesCidrBlocks: ["172.21.0.0/16"]
controlPlane:
endpoint:
host: ""
port: 6443
replicas: 3
label: master
kubeletExtraArgs:
kubeReserved: ""
systemReserved: ""
evictionHard: ""
evictionMinimumReclaim: ""
evictionMaxPodGracePeriod: ""
maxPods: ""
seccompDefault: ""
yandexMachine:
platformId: standard-v2
cores: 4
memory: 8
diskType: network-ssd
diskSize: 65
imageId: fd8gq17vqe1ph4tiyrbc
workerPool:
replicas: 3
label: worker
kubeletExtraArgs:
kubeReserved: ""
systemReserved: ""
evictionHard: ""
evictionMinimumReclaim: ""
evictionMaxPodGracePeriod: ""
maxPods: ""
seccompDefault: ""
yandexMachine:
availabilityZones:
- ru-central1-a
platformId: standard-v2
cores: 4
memory: 12
diskType: network-ssd
diskSize: 65
imageId: fd8gq17vqe1ph4tiyrbc
web:
bootstrapPassword: "somePassword123$"
hostname: rancher.redos-v21-ag.dev.stsoft.lan
kubernetesVersion: "v1.28.4"
sshAuthorizedKeys:
- ssh-ed25519 AAAAC3NzaC1lZKKtLOCNv2g bootsman@stsoft.ru
wait:
clusterCtlTimeout: 50m0s
operationTimeout: 40m0s
operationRetryInterval: 15s
objCreateTimeout: 4m0s
objCreateInterval: 5s
infrastructure:
yandex:
auth:
keyFileLocation: "key.json.bootsmanctl"
folderId: b1gvs031ueof1otylrqr
network:
name: default-1
useExisting: false
subNetworks:
- name: default-1
availabilityZone: ru-central1-a
podCIDR: 10.200.0.0/24
privacy: Public
clusterNetwork:
podCidrBlocks: ["172.20.0.0/16"]
servicesCidrBlocks: ["172.21.0.0/16"]
controlPlane:
endpoint:
host: ""
port: 6443
replicas: 3
label: master
kubeletExtraArgs:
kubeReserved: ""
systemReserved: ""
evictionHard: ""
evictionMinimumReclaim: ""
evictionMaxPodGracePeriod: ""
maxPods: ""
seccompDefault: ""
yandexMachine:
availabilityZones:
- ru-central1-a
platformId: standard-v2
cores: 4
memory: 8
diskType: network-ssd
diskSize: 65
imageId: fd8gq17vqe1ph4tiyrbc
workerPool:
replicas: 3
label: worker
kubeletExtraArgs:
kubeReserved: ""
systemReserved: ""
evictionHard: ""
evictionMinimumReclaim: ""
evictionMaxPodGracePeriod: ""
maxPods: ""
seccompDefault: ""
yandexMachine:
platformId: standard-v2
cores: 4
memory: 12
diskType: network-ssd
diskSize: 65
imageId: fd8gq17vqe1ph4tiyrbc
web:
bootstrapPassword: "somePassword123$"
hostname: rancher.redos-v21-ag.dev.stsoft.lan
Шаг 2. Запуск установки
Заметка
Установка платформы "Боцман" запускается с заранее подготовленным АРМ
Выполните команду запуска процесса установки:
- cluster-name - Имя управляющего кластера
Вывод инсталляции должен окончиться так:
В процессе установки кластера будет формироватьсяжурнал событий.
Неудачная инсталляция
В случае, если установка прервалась, и потребуется сделать еще одну попытку. Для новой попытки нужно сделать:
- Удалить вручную все что успел создать установщик Ресурсы Bootsman
- Удалить файлы инсталляции на АРМ администратора
- Если лицензия была установлена в env операционной системы - удостовериться в ее наличии
Доступ в интерфейс
Для успешного доступа в интерфейс нужно добавить запись в ваш DNS-сервер.
Запись состоит из двух параметров: IP-адрес и доменное имя(Оно указывалось в bootsman.config.yaml в виде опции BOOTSMAN_WEB_HOSTNAME).
IP-адрес можно получить двумя способами:
- Использовать kubectl(потребуется отдельная установка) и kubeconfig управляющего кластера
- Зайти в Yandex Cloud в указанный Folder и найти балансировщик вида: yandex-ccm-*
После добавления записи, произведите вход в web-панель (1)
- Адрес web-панели содержится в опции BOOTSMAN_WEB_HOSTNAME
- Пароль для доступа в web-панель содержится в опции BOOTSMAN_WEB_BOOTSTRAPPASSWORD
Вы авторизовались под пользователем admin. Далее рекомендуем сменить этот пароль с помощью стандартного меню управления пользователями.

