Перейти к содержанию

Установка в облаке 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. Рекомендуем сменить пароль с помощью стандартного меню управления пользователями.

  1. ADDONS_RANCHER_WEBHOSTNAME
  2. ADDONS_RANCHER_BOOTSTRAPPASSWORD