Перейти к содержимому

Шаг 0. Подготовка к инсталляции платформы Боцман ​

Перед началом инсталляции платформы "Боцман" убедитесь, что выполнены все шаги по подготовке АРМ

Шаг 1. Подготовка Образов ОС ​

Для работы с боцманом вам понадобятся образы ОС.

Самостоятельная подготовка образов ​

Подробнее в статье создание golden image.

Шаг 2. Подготовка файла конфигурации (bootsman.config.yaml) ​

На АРМ создайте конфиг файл bootsman.config.yaml в той же директории, где расположен инсталлятор-bootsmanctl

yaml
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_URLURL вашего репозитория образов
HARBOR_CREDS_INSECUREЭто служебный параметр, всегда будет false
HARBOR_CREDS_USERИмя пользователя в репозитории образов
HARBOR_CREDS_PASSWDПароль для пользователя в репозитории образов
ADDONS_RANCHER_WEBHOSTNAMEURL, по которому будет доступен web портал платформы
ADDONS_RANCHER_BOOTSTRAPPASSWORDПервоначальный пароль от web портала
CONTROLPLANE_COUNTКоличество мастеровМожет принимать значения 3 или 5
WORKER_COUNTКоличество воркеровДолжно быть >=3
VK_AUTH_CONFIG_IDENTITY_ENDPOINTURL для API доступа к вашему проектуМожно узнать в "Найстройках проекта" в разделе "Доступ по API" параметр "Auth URL"
VK_AUTH_CONFIG_USER_DOMAIN_NAMEЭто служебный параметр, всегда будет users
VK_CREDENTIALS_USERИмя пользователя для авторизации в VK Cloud
VK_CREDENTIALS_PASSWORDПароль пользователя для авторизации в VK Cloud
VK_CREDENTIALS_PROJECT_IDID проектаКак узнать 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_IDID образа
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_IDID существующей сети в проектеНе совместимо с 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_CIDRCIDR для VK_SUBNETWORK_NAMEНе совместимо с VK_SUBNETWORK_USE_EXISTING=true и VK_SUBNETWORK_ID
VK_SUBNETWORK_IDID существующей сети в проектеНе совместимо с 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_IDID существующего маршрутизатораНе совместимо с VK_ROUTER_USE_EXISTING=false и VK_ROUTER_NAME
CURRENT_MACHINE_IP_2Дополнительный адрес АРМ администратора. ОпциональноДля доступа в Kind кластеру с сторонней машины

Внимание

При работе с уже созданными ресурсами есть ограничения:

  • Подсеть и маршрутизатор должны быть оба либо новыми, либо существующие

  • Сеть может быть как новой, так и существующей

Пример заполненного файла конфигурации:

Шаг 3. Добавление лицензии ​

Лицензию можно добавить в окружение

bash
export LICENSE=ZzSGquD8GWb2zthw7XJR

Или добавить в файл

bash
mkdir -p .bootsmanctl
cat << EOF >> .bootsmanctl/license.lic
ZzSGquD8GWb2zthw7XJR
EOF

Шаг 4. Запуск установки ​

Заметка

Установка платформы "Боцман" запускается с заранее подготовленным АРМ

Выполните команду запуска процесса установки:

bash
./bootsmanctl management create {++${cluster-name}++} -i vk -c bootsman.config.yaml

Где:

 - ${cluster-name} - имя кластера;

Вывод инсталляции должен окончиться так:

bash
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

Команда Боцман