Установка в облаке VK
Шаг 0. Подготовка к инсталляции платформы Боцман
Перед началом инсталляции платформы "Боцман" убедитесь, что выполнены все шаги по подготовке АРМ
Шаг 1. Подготовка Образов ОС
Для работы с боцманом вам понадобятся образы ОС. Возможные варианты:
Использование готовых образов
Самостоятельная подготовка образов
Подробнее в статье создание golden image.
Шаг 2. Подготовка файла конфигурации (bootsman.config.yaml)
На АРМ создайте конфиг файл bootsman.config.yaml в той же директории, где расположен инсталлятор-bootsmanctl
kubernetesVersion: ${ K8S_VERSION }
registry:
username: ${ HARBOR_CREDS_USER }
password: ${ HARBOR_CREDS_PASSWD }
path: ${ HARBOR_CREDS_URL }
insecure: ${ HARBOR_CREDS_INSECURE }
sshAuthorizedKeys:
- ssh-ed25519 AAAAC3NzaC1lZKKtLOCNv2g bootsman@stsoft.ru
wait:
clusterCtlTimeout: 30m0s
operationTimeout: 40m0s
operationRetryInterval: 15s
objCreateTimeout: 4m0s
objCreateInterval: 5s
infrastructure:
clusterNetwork:
podCidrBlocks: ["172.20.0.0/16"]
servicesCidrBlocks: ["172.21.0.0/16"]
vk:
projectId: ${ VK_PROJECT_ID }
regionName: ${ VK_REGION_NAME }
auth:
identityEndpoint: ${ VK_AUTH_CONFIG_IDENTITY_ENDPOINT }
userDomainName: ${ VK_CREDENTIALS_USER }
credentials:
username: ${ VK_CREDENTIALS_USER }
password: ${ VK_CREDENTIALS_PASSWORD }
network:
name: ${ VK_NETWORK_NAME }
id: ${ VK_NETWORK_ID }
useExisting: ${ VK_NETWORK_USE_EXISTING }
externalNetworkName: ${ VK_NETWORK_EXTERNAL_NETWORK_NAME }
subnetwork:
name: ${ VK_SUBNETWORK_NAME }
id: ${ VK_SUBNETWORK_ID }
useExisting: ${ VK_SUBNETWORK_USE_EXISTING }
cidr: ${ VK_SUBNETWORK_CIDR }
router:
name: ${ VK_ROUTER_NAME }
id: ${ VK_ROUTER_ID }
useExisting: ${ VK_ROUTER_USE_EXISTING }
privacyScope: ${ VK_PRIVACY }
controlPlane:
endpoint:
host: ""
port: 6443
replicas: 3
label: ""
kubeletExtraArgs: {}
vkMachine:
imageId: ${ VK_TEMPLATE_IMAGE_ID }
availabilityZones:
- ${ VK_TEMPLATE_AVAILABILITY_ZONE }
flavorRef: ${ VK_TEMPLATE_FLAVOR_REF }
volumeSize: ${ VK_TEMPLATE_VOLUME_SIZE }
volumeType: ${ VK_TEMPLATE_VOLUME_TYPE }
workerPool:
replicas: 3
label: ""
kubeletExtraArgs: {}
vkMachine:
imageId: ${ VK_TEMPLATE_IMAGE_ID }
availabilityZones:
- ${ VK_TEMPLATE_AVAILABILITY_ZONE }
flavorRef: ${ VK_TEMPLATE_FLAVOR_REF }
volumeSize: ${ VK_TEMPLATE_VOLUME_SIZE }
volumeType: ${ VK_TEMPLATE_VOLUME_TYPE }
web:
bootstrapPassword: ${ ADDONS_RANCHER_BOOTSTRAPPASSWORD }
hostname: ${ ADDONS_RANCHER_WEBHOSTNAME }
currentMachineIp: ${ CURRENT_MACHINE_IP_2 }
Заметка
Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее
Заметка
Pod и Service cidr можно изменить, следуя правилам: маска блоков должна быть не менее 16, блоки не должны пересекаться.
Описание параметров
| Имя параметра | Описание | Комментарий |
|---|---|---|
| K8S_VERSION | Версия Kubernetes для управляющего кластера | Поддерживаемые версии v1.27.6, v1.28.4, v1.29.3 |
| HARBOR_CREDS_URL | URL вашего репозитория образов | |
| HARBOR_CREDS_INSECURE | Это служебный параметр, всегда будет false | |
| HARBOR_CREDS_USER | Имя пользователя в репозитории образов | |
| HARBOR_CREDS_PASSWD | Пароль для пользователя в репозитории образов | |
| ADDONS_RANCHER_WEBHOSTNAME | URL, по которому будет доступен web портал платформы | |
| ADDONS_RANCHER_BOOTSTRAPPASSWORD | Первоначальный пароль от web портала | |
| CONTROLPLANE_COUNT | Количество мастеров | Может принимать значения 3 или 5 |
| WORKER_COUNT | Количество воркеров | Должно быть >=3 |
| VK_AUTH_CONFIG_IDENTITY_ENDPOINT | URL для API доступа к вашему проекту | Можно узнать в "Найстройках проекта" в разделе "Доступ по API" параметр "Auth URL" |
| VK_AUTH_CONFIG_USER_DOMAIN_NAME | Это служебный параметр, всегда будет users | |
| VK_CREDENTIALS_USER | Имя пользователя для авторизации в VK Cloud | |
| VK_CREDENTIALS_PASSWORD | Пароль пользователя для авторизации в VK Cloud | |
| VK_CREDENTIALS_PROJECT_ID | ID проекта | Как узнать ID проекта |
| VK_REGION_NAME | Служебный параметр для работы с API | Можно узнать в "Найстройках проекта" в разделе "Доступ по API" параметр "Region Name" |
| VK_AUTH_CONFIG_SECRET_NAME | Имя секрета, в котором будут хранится VK_CREDENTIALS_USER и VK_CREDENTIALS_PASSWORD | Имя может быть произвольным, но не противоречащей правилам наименования kubernetes |
| VK_AUTH_CONFIG_FIELD | Имя ключа внутри секрета VK_AUTH_CONFIG_SECRET_NAME | Имя может быть произвольным, но не противоречащей правилам наименования kubernetes |
| VK_PRIVACY | Выбор режима взаимодействия с кластером | Поддерживаемые значения Public, PrivateMachines, Private. Подробнее |
| VK_TEMPLATE_IMAGE_ID | ID образа | |
| VK_TEMPLATE_AVAILABILITY_ZONE | Зона доступности VK Cloud | О зонах доступности |
| VK_TEMPLATE_FLAVOR_REF | Шаблон конфигурации облака VK | Помните о минимальных требованиях Требования к инфраструктуре О Шаблонах конфигурации |
| VK_TEMPLATE_VOLUME_SIZE | Размер дискового пространства | Помните о минимальных требованиях Требования к инфраструктуре |
| VK_TEMPLATE_VOLUME_TYPE | Тип дисков | Подробнее о типах дисков |
| VK_NETWORK_EXTERNAL_NETWORK_NAME | Имя внешней сети | Подробнее о типах сетей |
| VK_NETWORK_USE_EXISTING | Использование существующей сети | Принимает значение true или false. Если не задано, то значение false |
| VK_NETWORK_NAME | Имя новой сети в проекте | Не совместимо с VK_NETWORK_USE_EXISTING=true и VK_NETWORK_ID |
| VK_NETWORK_ID | ID существующей сети в проекте | Не совместимо с VK_NETWORK_USE_EXISTING=false и VK_NETWORK_NAME |
| VK_SUBNETWORK_USE_EXISTING | Использование существующей подсети | Принимает значение true или false. Если не задано, то значение false |
| VK_SUBNETWORK_NAME | Имя новой подсети в проекте | Не совместимо с VK_SUBNETWORK_USE_EXISTING=true и VK_SUBNETWORK_ID |
| VK_SUBNETWORK_CIDR | CIDR для VK_SUBNETWORK_NAME | Не совместимо с VK_SUBNETWORK_USE_EXISTING=true и VK_SUBNETWORK_ID |
| VK_SUBNETWORK_ID | ID существующей сети в проекте | Не совместимо с VK_NETWORK_USE_EXISTING=false и VK_NETWORK_NAME и VK_SUBNETWORK_CIDR |
| VK_ROUTER_USE_EXISTING | Использование существующего маршрутизатора | Принимает значение true или false. Если не задано, то значение false |
| VK_ROUTER_NAME | Имя нового маршрутизатора в подсети | Не совместимо с VK_ROUTER_USE_EXISTING=true и VK_ROUTER_ID |
| VK_ROUTER_ID | ID существующего маршрутизатора | Не совместимо с VK_ROUTER_USE_EXISTING=false и VK_ROUTER_NAME |
| CURRENT_MACHINE_IP_2 | Дополнительный адрес АРМ администратора. Опционально | Для доступа в Kind кластеру с сторонней машины |
Внимание
При работе с уже созданными ресурсами есть ограничения:
-
Подсеть и маршрутизатор должны быть оба либо новыми, либо существующие
-
Сеть может быть как новой, так и существующей
Пример заполненного файла конфигурации:
kubernetesVersion: v1.27.6
registry:
username: demo
password: demo
path: redos-quay.stsoft.lan/bootsman-v210
insecure: true
sshAuthorizedKeys:
- "ssh-rsa AAAAB3Nzap915rUK1B7cHhJ example"
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
kubernetesVersion: "v1.27.6"
sshAuthorizedKeys:
- "ssh-rsa AAAAB3Nzap915rUK1B7cHhJ example"
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
Шаг 3. Добавление лицензии
Лицензию можно добавить в окружение
export LICENSE=ZzSGquD8GWb2zthw7XJR
Или добавить в файл
mkdir -p .bootsmanctl
cat << EOF >> .bootsmanctl/license.lic
ZzSGquD8GWb2zthw7XJR
EOF
Шаг 4. Запуск установки
Заметка
Установка платформы "Боцман" запускается с заранее подготовленным АРМ
Выполните команду запуска процесса установки:
./bootsmanctl management create ${cluster-name} -i vk -c bootsman.config.yaml
Где:
- ${cluster-name} - имя кластера;
Вывод инсталляции должен окончиться так:
2023-09-10T17:49:46Z | INFO | finished
Доступ в интерфейс
После окончания установки определите в VK Cloud - Network Load Balancer - IP адрес созданного балансировщика с обработчиком https и внесите его в конфиг DNS-сервера. Перейдите в web-панель платформы по адресу, который указывали в конфигурационном файле. (1) Откроется визард настройки с запросом пароля, который указывали в конфиге. (2)
Вы авторизовались под пользователем admin. Рекомендуем сменить пароль с помощью стандартного меню управления пользователями.
- ADDONS_RANCHER_WEBHOSTNAME
- ADDONS_RANCHER_BOOTSTRAPPASSWORD