Шаг 0. Подготовка к инсталляции платформы Боцман
Перед началом инсталляции платформы "Боцман" убедитесь, что выполнены все шаги по подготовке:
Заметка
Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее
Внимание!
Для успешной инсталяции, на вашем аккаунте VK Cloud должна быть активирована двуфакторная авторизация.
Шаг 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:
clusterCtlTimeout: 30m0s (42)
operationTimeout: 40m0s (43)
operationRetryInterval: 15s (44)
objCreateTimeout: 4m0s (45)
objCreateInterval: 5s (46)
infrastructure:
clusterNetwork:
podCidrBlocks: ["POD_CIDR"] (7)
servicesCidrBlocks: ["SERVICE_CIDR"] (8)
vk:
projectId: VK_PROJECT_ID (9)
regionName: VK_REGION_NAME (10)
auth:
identityEndpoint: VK_ENDPOINT (11)
userDomainName: VK_USER_DOMAN_NAME (41)
credentials:
username: VK_USERNAME (12)
password: VK_PASSWORD (13)
network:
# Раскоментируйте блок в случае использования новой сети VK cloud
# name: VK_NETWORK_NAME (14)
# Раскоментируйте блок в случае использования существующей сети VK cloud
# id: VK_NETWORK_ID (15)
# useExisting: VK_NETWORK_EXIST (16)
externalNetworkName: VK_EXTERNAL_NETWORK_NAME (17)
subnetwork:
# Раскоментируйте блок в случае использования новой подсети VK cloud
# name: VK_SUBNETWORK_NAME (18)
# cidr: VK_SUBNETWORK_CIDR (21)
# Раскоментируйте блок в случае использования существующей подсети VK cloud
# id: VK_SUBNETWORK_ID (19)
# useExisting: VK_SUBNETWORK_USE_EXISTING (20)
router:
# Раскоментируйте блок в случае использования нового маршрутизатора VK cloud
# name: VK_ROUTER_NAME (22)
# Раскоментируйте блок в случае использования существующего маршрутизатора VK cloud
# id: VK_ROUTER_ID (23)
# useExisting: VK_ROUTER_EXIST (24)
privacyScope: VK_PRIVACY (25)
controlPlane:
endpoint:
host: ""
port: KUBE_API_PORT (26)
replicas: KCP_REPLICAS (27)
label: master
kubeletExtraArgs: {}
vkMachine:
imageId: VK_CONTROLPLANE_IMAGE_ID (28)
availabilityZones:
- VK_CONTROLPLANE_AVAILABILITY_ZONE (29)
flavorRef: VK_CONTROLPLANE_FLAVOR_REF (30)
volumeSize: VK_CONTROLPLANe_VOLUME_SIZE (31)
volumeType: VK_CONTROLPLANE_VOLUME_TYPE (32)
machineHealthCheck:
timeoutDuration: 10m0s (47)
maxUnhealthy: 100% (48)
workerPool:
replicas: WORKER_REPLICAS (33)
label: worker
kubeletExtraArgs: {}
vkMachine:
imageId: VK_WORKER_IMAGE_ID (34)
availabilityZones:
- VK_WORKER_AVAILABILITY_ZONE (35)
flavorRef: VK_WORKER_FLAVOR_REF (36)
volumeSize: VK_WORKERE_VOLUME_SIZE (37)
volumeType: VK_WORKER_VOLUME_TYPE (38)
machineHealthCheck:
timeoutDuration: 10m0s (49)
maxUnhealthy: 40% (50)
web:
bootstrapPassword: BOOTSMAN_WEB_BOOTSTRAPPASSWORD (39)
hostname: BOOTSMAN_WEB_HOSTNAME (40)
- Версия 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"] - ID проекта в облаке VK.
Можно узнать в "Настройках проекта" в разделе "Terraform" параметр "Project ID / tenant_id"
- Служебный параметр для работы с API.
Можно узнать в "Настройках проекта" в разделе "Доступ по API" параметр "Region Name
- URL для API доступа к вашему проекту.
Можно узнать в "Настройках проекта" в разделе "Доступ по API" параметр "Auth URL"
- Имя пользователя для авторизации в VK Cloud
- Пароль пользователя для авторизации в VK Cloud
- Имя сети VK CLoud. Несовместим с VK_NETWORK_ID
- ID существующей сети
- true - использовать существующую сеть VK Cloud, false - создать новую
- Технический параметр. Всегда будет "ext-net"
- Имя подсети VK CLoud. Несовместим с VK_SUBNETWORK_ID
- ID существующей подсети
- {{ no such element: dict object['VK_SUBNETWORK_USE_EXISTING'] }}
- Адресное пространство для новой подсети VK CLoud. Несовместим с существующей подсетью
- Имя маршрутизатора VK CLoud. Несовместим с VK_ROUTER_ID
- ID существующего роутера
- true - использовать существующий роутер, false - создать новую
- Выбор режима взаимодействия с кластером Поддерживаемые значения Public, PrivateMachines, Private. Подробнее
- Порт kube-api. По-умолчанию 6443
- Количество узлов с ролью master.
Может принимать значения 3 или 5
- ID образа операционной системы.
Подготовьте ОС в соответствии с инструкцией или используйте уже подготовленные образа
- Зона доступности VK Cloud. Возможно задать более 1 зоны.
- Шаблон конфигурации облака VK.
- Объём дискового пространства.
Измеряется в GiB.
- Тип дисков.
Подробнее о типах дисков
- Число узлов в workerpool. Сумма узлов во всех workerpool должна быть >=3
- ID образа операционной системы.
Подготовьте ОС в соответствии с инструкцией или используйте уже подготовленные образа
- Зона доступности VK Cloud. Возможно задать более 1 зоны.
- Шаблон конфигурации облака VK.
- Объём дискового пространства.
Измеряется в GiB.
- Тип дисков.
Подробнее о типах дисков
- Первоначальный пароль от web портала
- Доменное имя, по которому будет доступен web портал платформы.
Имя должно иметь запись на DNS-сервере.
Нельзя использовать Hosts
Нельзя указывать IP-адрес
- Технический параметр. Всегда будет "users".
Можно узнать в "Настройках проекта" в разделе "Доступ по API" параметр "Auth URL"
- Таймаут на все действия bootsmanctl
- Таймаут по-умолчанию для всех операций
- Интервал по-умолчанию для всех операций
- Таймаут на создание или обновление объектов
- Интервал повторной попытки создания или обновления объектов
- Время, которое дается узлу на самостоятельное восстановление, прежде чем вмешается MachineHealthCheck.
По-умолчанию 10m
- Пороговое значение для MachineHealthCheck, при превышении которого не будет выполняться исправления.
Для узлов с ролью master, значение по-умолчанию 100%.
Для узлов с ролью worker, значение по-умолчанию 40%
- Время, которое дается узлу на самостоятельное восстановление, прежде чем вмешается MachineHealthCheck.
По-умолчанию 10m
- Пороговое значение для MachineHealthCheck, при превышении которого не будет выполняться исправления.
Для узлов с ролью master, значение по-умолчанию 100%.
Для узлов с ролью worker, значение по-умолчанию 40%
Пример заполненного файла конфигурации:
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:
AddonHelmTimeout: 10m
clusterCtlTimeout: 50m0s
operationTimeout: 40m0s
operationRetryInterval: 15s
objCreateTimeout: 4m0s
objCreateInterval: 5s
infrastructure:
clusterNetwork:
podCidrBlocks: ["172.20.0.0/16"]
servicesCidrBlocks: ["172.21.0.0/16"]
vk:
projectId: d1f12a62de9bdf541302f158
regionName: RegionOne
auth:
identityEndpoint: https://infra.mail.ru:35357/v3/
userDomainName: users
credentials:
username: demo@stsoft.ru
password: demopass
network:
name: bootsman-network
externalNetworkName: ext-net
subnetwork:
name: bootsman-subnetwork
cidr: 10.0.250.0/24
router:
name: bootsman-router
privacyScope: Public
controlPlane:
endpoint:
host: ""
port: 6443
replicas: 3
label: ""
kubeletExtraArgs: {}
vkMachine:
imageId: 68e42c1c-c62a-4c16-9c28-3646bffbc8df
availabilityZones:
- MS1
flavorRef: STD3-4-12
volumeSize: 100
volumeType: ceph-ssd
workerPool:
replicas: 3
label: ""
kubeletExtraArgs: {}
vkMachine:
imageId: 68e42c1c-c62a-4c16-9c28-3646bffbc8df
availabilityZones:
- MS1
flavorRef: STD3-4-12
volumeSize: 60
volumeType: ceph-ssd
web:
bootstrapPassword: "somePassword123$"
hostname: rancher.redos-v21-ag.dev.stsoft.lan
kubernetesVersion: "v1.28.4"
sshAuthorizedKeys:
- ssh-ed25519 AAAAC3NzaC1lZKKtLOCNv2g bootsman@stsoft.ru
wait:
AddonHelmTimeout: 10m
clusterCtlTimeout: 50m0s
operationTimeout: 40m0s
operationRetryInterval: 15s
objCreateTimeout: 4m0s
objCreateInterval: 5s
infrastructure:
clusterNetwork:
podCidrBlocks: ["172.20.0.0/16"]
servicesCidrBlocks: ["172.21.0.0/16"]
vk:
projectId: d1f12a62de9bdf541302f158
regionName: RegionOne
auth:
identityEndpoint: https://infra.mail.ru:35357/v3/
userDomainName: users
credentials:
username: demo@stsoft.ru
password: demopass
network:
name: bootsman-network
externalNetworkName: ext-net
subnetwork:
name: bootsman-subnetwork
cidr: 10.0.250.0/24
router:
name: bootsman-router
privacyScope: Public
controlPlane:
endpoint:
host: ""
port: 6443
replicas: 3
label: ""
kubeletExtraArgs: {}
vkMachine:
imageId: 68e42c1c-c62a-4c16-9c28-3646bffbc8df
availabilityZones:
- MS1
flavorRef: STD3-4-12
volumeSize: 60
volumeType: ceph-ssd
workerPool:
replicas: 3
label: ""
kubeletExtraArgs: {}
vkMachine:
imageId: 68e42c1c-c62a-4c16-9c28-3646bffbc8df
availabilityZones:
- MS1
flavorRef: STD3-4-12
volumeSize: 60
volumeType: ceph-ssd
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 управляющего кластера
- Зайти в VK Cloud в указанный Folder и найти балансировщик вида: kube_service_cluster-name_nginx-ingress_ingress-nginx-controller
После добавления записи, произведите вход в web-панель (1)
- Адрес web-панели содержится в опции BOOTSMAN_WEB_HOSTNAME
- Пароль для доступа в web-панель содержится в опции BOOTSMAN_WEB_BOOTSTRAPPASSWORD
Вы авторизовались под пользователем admin. Далее рекомендуем сменить этот пароль с помощью стандартного меню управления пользователями.

