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

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

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

  1. Подготовлен АРМ Администратора АРМ
  2. Подготовлен образ операционной системы

Дополнительные возможности инсталяции ​

На этой странице начиная с Шага 1 будет представлена обычная инсталяция без существенных модификаций и в качестве первого опыта рекомендуется использовать именно ее, но вы можете дополнительно модифицировать свою инсталяцию:

  1. Установка кластера с внешний Etcd
  2. Установка Bootsman 1+1 для тестовых сред
  3. Расширенные настройки мастер-узлов
  4. Зеркалирование образов контейнеров

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

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

bash
touch bootsman.config.yaml

И откройте его для редактирования любым текстовом редакторе, например nano:

bash
nano bootsman.config.yaml

Заметка

Обратите внимание на закомментированные блоки. Следует выбрать один из предложенных и раскомментировать.

yaml
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@example.ru
wait:
  clusterCtlTimeout: 30m0s (35)
  operationTimeout: 40m0s (36)
  operationRetryInterval: 15s (37)
  objCreateTimeout: 4m0s (38)
  objCreateInterval: 5s (39)
  addonHelmTimeout: 5m (40)
infrastructure:
  clusterNetwork:
    podCidrBlocks: ["{++POD_CIDR++}"] (7)
    servicesCidrBlocks: ["{++SERVICE_CIDR++}"] (8)
  brest:
    network:
      name: {++BREST_NETWORK_NAME++} (10)
      # Раскоментируйте блок в случае использования существующей сети
      # useExisting: true (9)
      # Раскоментируйте блок в случае создания новой сети
      # options:
      #   driver: "802.1Q" (29)
      #   vlanId: "{++BREST_NETWORK_VLAN_ID++}" (30)
      #   address: "{++BREST_NETWORK_ADDRESS++}" (31)
      #   size: {++BREST_NETWORK_SIZE++} (32)
      #   device: "{++BREST_NETWORK_PHYDEV++}" (33)
      #   gateway: "{++BREST_NETWORK_GATEWAY++}" (34)
    auth:
      username: {++BREST_AUTH_USERNAME++} (11)
      password: {++BREST_AUTH_PASSWORD++} (12)
      identityEndpoint: {++BREST_AUTH_URL++} (13)
controlPlane:
  endpoint:
    host: {++K8SCPIP++} (14)
    port: {++KUBE_API_PORT++} (15)
  replicas: {++KCP_REPLICAS++} (16)
  label: ""
  kubeletExtraArgs:
    eviction-hard: ""
    eviction-max-pod-grace-period: ""
    eviction-minimum-reclaim: ""
    kube-reserved: ""
    max-pods: ""
    seccomp-default: ""
    system-reserved: ""
  machineHealthCheck:
      timeoutDuration: 15m0s (41)
      maxUnhealthy: 100% (42)
  brestMachine:
    template:
      name: {++BREST_CONTROLPLANE_IMAGE_NAME++} (17)
    cpu: {++BREST_CONTROLPLANE_CPU++} (18)
    memory: {++BREST_CONTROLPLANE_MEMORY_GB++} (19)
    disk: {++BREST_CONTROLPLANE_DISK_GB++} (20)
workerPool:
  replicas: {++WORKER_REPLICAS++} (21)
  label: ""
  kubeletExtraArgs:
    eviction-hard: ""
    eviction-max-pod-grace-period: ""
    eviction-minimum-reclaim: ""
    kube-reserved: ""
    max-pods: ""
    seccomp-default: ""
    system-reserved: ""
  machineHealthCheck:
      timeoutDuration: 15m0s (43)
      maxUnhealthy: 40% (44)
  brestMachine:
    template:
      name: {++BREST_WORKER_IMAGE_NAME++} (22)
    cpu: {++BREST_WORKER_CPU++} (23)
    memory: {++BREST_WORKER_MEMORY_GB++} (24)
    disk: {++BREST_WORKER_DISK_GB++} (25)
web:
  bootstrapPassword: {++BOOTSMAN_WEB_BOOTSTRAPPASSWORD++} (26)
  hostname: {++BOOTSMAN_WEB_HOSTNAME++} (27)
  1. Версия Kubernetes. Поддерживаемые версии
  2. Имя пользователя в репозитории образов.
    Если установка будет производится online блок registry можно удалить
  3. Пароль для пользователя в репозитории образов.
    Если установка будет производится online блок registry можно удалить
  4. URL вашего репозитория образов.
    Если установка будет производится online блок registry можно удалить
  5. Это служебный параметр, всегда будет false
  6. Список ssh-ключей, которые будут добавлены на узлы
  7. Блок адресов для Pods.
    Должен не пересекаться с другими блоками внутри одного Kubernetes кластера и реальными сетями вашей инфраструктуры.
    Допустимый размер блока /[1-20]
    Пример:
    podsCidrBlocks: ["172.20.0.0/16"]
  8. Блок адресов для Service.
    Должен не пересекаться с другими блоками внутри одного Kubernetes кластера и реальными сетями вашей инфраструктуры.
    Допустимый размер блока /[1-20]
    Пример:
    servicesCidrBlocks: ["172.21.0.0/16"]
  9. true в случае использования существующего ресурса, false для создания нового
  10. Имя сети, в которую будут подключены новые виртуальные машины
  11. Пользователь Brest
  12. Пароль пользователя Brest
  13. IP-адрес или DNS-имя Brest.
    Пример: http://10.0.0.10:2633/RPC2
  14. IP-адрес балансировщика kube-apiserver для обеспечения отказоустойчивости.
    Адрес должен быть свободен и не состоять в dhcp-пулах Подробнее
  15. Порт kube-api. По-умолчанию 6443
  16. Количество узлов с ролью master.
    Может принимать значения 3 или 5
  17. Имя шаблона виртуальной машины, из которого будут созданы новые узлы с ролью master
  18. Число CPU.
    Требования к инфраструктуре
  19. Объём оперативной памяти. Измеряется в GB.
    Требования к инфраструктуре
  20. Объём дискового пространства. Измеряется в GB.
    Требования к инфраструктуре
  21. Число узлов в workerpool. Сумма узлов во всех workerpool должна быть >=3
  22. Имя шаблона виртуальной машины, из которого будут созданы новые узлы с ролью worker
  23. Число CPU.
    Требования к инфраструктуре
  24. Объём оперативной памяти. Измеряется в GB.
    Требования к инфраструктуре
  25. Объём дискового пространства. Измеряется в GB.
    Требования к инфраструктуре
  26. Первоначальный пароль от web портала
  27. Доменное имя, по которому будет доступен web портал платформы.
    Имя должно иметь запись на DNS-сервере.
    Нельзя использовать Hosts
    Нельзя указывать IP-адрес
  28. blob
  29. Технический параметр. Только значение "802.1Q"
  30. vlan ID внутри гипервизора Брест
  31. Начало DHCP-пула Бреста
  32. Число IP-адресов в DHCP-пуле
  33. Физическое устройство на узле Брест
  34. Адрес шлюза
  35. Таймаут на все действия bootsmanctl
  36. Таймаут по-умолчанию для всех операций
  37. Интервал по-умолчанию для всех операций
  38. Таймаут на создание или обновление объектов
  39. Интервал повторной попытки создания или обновления объектов
  40. Таймаут на установка модулей
  41. Время, которое дается узлу на самостоятельное восстановление, прежде чем вмешается MachineHealthCheck.
    По-умолчанию 10m
    Подробнее
  42. Пороговое значение для MachineHealthCheck, при превышении которого не будет выполняться исправления.
    Для узлов с ролью master, значение по-умолчанию 100%.
    Для узлов с ролью worker, значение по-умолчанию 40%
    Подробнее
  43. Время, которое дается узлу на самостоятельное восстановление, прежде чем вмешается MachineHealthCheck.
    По-умолчанию 10m
    Подробнее
  44. Пороговое значение для MachineHealthCheck, при превышении которого не будет выполняться исправления.
    Для узлов с ролью master, значение по-умолчанию 100%.
    Для узлов с ролью worker, значение по-умолчанию 40%
    Подробнее

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

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

Заметка

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

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

./bootsmanctl mgmt create {++cluster-name++} -i brest -c bootsman.config.yaml(1)
  1. cluster-name - Имя управляющего кластера

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

bash
2023-09-10T17:49:46Z | INFO  | finished

В процессе установки кластера будет формироваться
журнал событий.

Неудачная инсталляция

В случае, если установка прервалась, и потребуется сделать еще одну попытку. Для новой попытки нужно сделать:

  • Удалить вручную все что успел создать установщик Ресурсы Bootsman
  • Удалить файлы инсталляции на АРМ администратора
    bash
    ./bootsmanctl mgmt delete <mark>cluster-name</mark>
  • Если лицензия была установлена в env операционной системы - удостовериться в ее наличии
    bash
    env | grep LICENSE

Доступ в интерфейс ​

Для успешного доступа в интерфейс нужно добавить запись в ваш DNS-сервер.
Запись состоит из двух параметров: IP-адрес одного из узлов роли worker и доменное имя(Оно указывалось в bootsman.config.yaml в виде опции BOOTSMAN_WEB_HOSTNAME).

После добавления записи, произведите вход в web-панель (1)

loginlogin

login: admin
password: {++BOOTSMAN_WEB_BOOTSTRAPPASSWORD++} (2)
  1. Адрес web-панели содержится в опции BOOTSMAN_WEB_HOSTNAME
  2. Пароль для доступа в web-панель содержится в опции BOOTSMAN_WEB_BOOTSTRAPPASSWORD

Вы авторизовались под пользователем admin. Далее рекомендуем сменить этот пароль с помощью стандартного меню управления пользователями.

Следующий шаг ​

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