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

Проверка требований

Требуется vSphere версии 6.7 u3 или выше

Пользователь vSphere

Если требуется использовать ограниченного пользователя, воспользуйтесь инструкцией

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

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

  1. Подготовлен АРМ Администратора АРМ
  2. Подготовлен образ ОС Образ ОС

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

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

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

Заметка

Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее

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 (33)
  operationTimeout: 40m0s (34)
  operationRetryInterval: 15s (35)
  objCreateTimeout: 4m0s (36)
  objCreateInterval: 5s (37)
  addonHelmTimeout: 5m (38)
infrastructure:
  clusterNetwork:
    podCidrBlocks: ["POD_CIDR"] (7)
    servicesCidrBlocks: ["SERVICE_CIDR"] (8)
  vsphere:
    auth:
      address: VSPHERE_ADDRESS (9)
      user: VSPHERE_USERNAME (10)
      password: VSPHERE_PASSWORD (11)
      insecure: VSPHERE_INSECURE (12)
    datacenter: VSPHERE_DATACENTER (13)
    datastore: VSPHERE_DATASTORE (14)
    cluster: VSPHERE_CLUSTER (15)
    folder: VSPHERE_FOLDER (16)
    networkName: VSPHERE_NETWORK (17)
controlPlane:
  endpoint:
    host: K8SCPIP (18)
    port: KUBE_API_PORT (19)
  replicas: KCP_REPLICAS (20)
  label: master
  kubeletExtraArgs:
    kubeReserved: ""
    systemReserved: ""
    evictionHard: ""
    evictionMinimumReclaim: ""
    evictionMaxPodGracePeriod: ""
    maxPods: ""
    seccompDefault: ""
  vsphereMachine:
    cpu: VSPHERE_CONTROLPLANE_CPU (21)
    memoryMB: VSPHERE_CONTROLPLANE_MEMORY_MB (22)
    diskGB: VSPHERE_CONTROLPLANE_DISK_GB (23)
    vmTemplate: VSPHERE_CONTROLPLANE_TEMPLATE (24)
  machineHealthCheck:  
      timeoutDuration: 10m0s (39)
      maxUnhealthy: 100% (40)
workerPool:
  replicas: WORKER_REPLICAS (25)
  label: worker
  kubeletExtraArgs:
    kubeReserved: ""
    systemReserved: ""
    evictionHard: ""
    evictionMinimumReclaim: ""
    evictionMaxPodGracePeriod: ""
    maxPods: ""
    seccompDefault: ""
  vsphereMachine:
    cpu: VSPHERE_WORKER_CPU (26)
    memoryMB: VSPHERE_WORKER_MEMORY_MB (27)
    diskGB: VSPHERE_WORKER_DISK_GB (28)
    vmTemplate: VSPHERE_WORKER_TEMPLATE (29)
  machineHealthCheck:  
      timeoutDuration: 10m0s (41)
      maxUnhealthy: 40% (42)
web:
  bootstrapPassword: BOOTSMAN_WEB_BOOTSTRAPPASSWORD (30)
  hostname: BOOTSMAN_WEB_HOSTNAME (31)
  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. IP адрес или доменное имя вашего vCenter
  10. Пользователь для подключения к vCenter
  11. Пароль для подключения к vCenter
  12. Разрешить доступ при отсутствии валидного сертификата на vSphere
  13. Имя датацентра
  14. Имя хранилища, в котором будут размещены новые виртуальные машины
  15. Имя кластера
  16. Имя директории, в которых будут размещены новые виртуальные машины
  17. Имя сети, в которую будут подключены новые виртуальные машины
  18. IP-адрес балансировщика kube-apiserver для обеспечения отказоустойчивости.

    Адрес должен быть свободен и не состоять в dhcp-пулах Подробнее

  19. Порт kube-api. По-умолчанию 6443
  20. Количество узлов с ролью master.

    Может принимать значения 3 или 5

  21. Число CPU.

    Требования к инфраструктуре

  22. Объём оперативной памяти. Измеряется в MB.

    Требования к инфраструктуре

  23. Объём дискового пространства. Измеряется в GB.

    Требования к инфраструктуре

  24. Имя шаблона виртуальной машины, из которого будут созданы новые узлы с ролью master
  25. Число узлов в workerpool. Сумма узлов во всех workerpool должна быть >=3
  26. Число CPU.

    Требования к инфраструктуре

  27. Объём оперативной памяти. Измеряется в MB.

    Требования к инфраструктуре

  28. Объём дискового пространства. Измеряется в GB.

    Требования к инфраструктуре

  29. Имя шаблона виртуальной машины, из которого будут созданы новые узлы с ролью worker
  30. Первоначальный пароль от web портала
  31. Доменное имя, по которому будет доступен web портал платформы.

    Имя должно иметь запись на DNS-сервере.

    Нельзя использовать Hosts

    Нельзя указывать IP-адрес

  32. blob
  33. Таймаут на все действия bootsmanctl
  34. Таймаут по-умолчанию для всех операций
  35. Интервал по-умолчанию для всех операций
  36. Таймаут на создание или обновление объектов
  37. Интервал повторной попытки создания или обновления объектов
  38. Таймаут на установка модулей
  39. Время, которое дается узлу на самостоятельное восстановление, прежде чем вмешается MachineHealthCheck.

    По-умолчанию 10m

    Подробнее

  40. Пороговое значение для MachineHealthCheck, при превышении которого не будет выполняться исправления.

    Для узлов с ролью master, значение по-умолчанию 100%.

    Для узлов с ролью worker, значение по-умолчанию 40%

    Подробнее

  41. Время, которое дается узлу на самостоятельное восстановление, прежде чем вмешается MachineHealthCheck.

    По-умолчанию 10m

    Подробнее

  42. Пороговое значение для MachineHealthCheck, при превышении которого не будет выполняться исправления.

    Для узлов с ролью master, значение по-умолчанию 100%.

    Для узлов с ролью worker, значение по-умолчанию 40%

    Подробнее

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

kubernetesVersion: v1.28.4
sshAuthorizedKeys:
  - ssh-ed25519 AAAAC3NzaC1lZKKtLOCNv2g bootsman@stsoft.ru
wait:
  clusterCtlTimeout: 30m0s
  operationTimeout: 40m0s
  operationRetryInterval: 15s
  objCreateTimeout: 4m0s
  objCreateInterval: 5s
  addonHelmTimeout: 5m
infrastructure:
  clusterNetwork:
    podCidrBlocks: ["172.20.0.0/16"]
    servicesCidrBlocks: ["172.21.0.0/16"]
  vsphere:
    auth:
      address: 10.0.0.1
      user: admin
      password: admin
      insecure: true
    datacenter: vsphere_datacenter
    datastore: vsphere_datastore
    cluster: vsphere_cluster
    folder: FOLDER_EXAMPLE
    networkName: vsphere_dswitch
controlPlane:
  endpoint:
    host: 10.0.1.10
    port: 6443
  replicas: 3
  label: master
  kubeletExtraArgs:
    kubeReserved: ""
    systemReserved: ""
    evictionHard: ""
    evictionMinimumReclaim: ""
    evictionMaxPodGracePeriod: ""
    maxPods: ""
    seccompDefault: ""
  vsphereMachine:
    cpu: 4
    memoryMB: 8192
    diskGB: 45
    vmTemplate: redos-7.3-kube-1.28.4
workerPool:
  replicas: 3
  label: worker
  kubeletExtraArgs:
    kubeReserved: ""
    systemReserved: ""
    evictionHard: ""
    evictionMinimumReclaim: ""
    evictionMaxPodGracePeriod: ""
    maxPods: ""
    seccompDefault: ""
  vsphereMachine:
    cpu: 4
    memoryMB: 12288
    diskGB: 60
    vmTemplate: redos-7.3-kube-1.28.4
web:
  bootstrapPassword: "yourPassword123"
  hostname: rancher.redos-v21-ag.dev.stsoft.lan
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:
  clusterCtlTimeout: 30m0s
  operationTimeout: 40m0s
  operationRetryInterval: 15s
  objCreateTimeout: 4m0s
  objCreateInterval: 5s
  addonHelmTimeout: 5m
infrastructure:
  clusterNetwork:
    podCidrBlocks: ["172.20.0.0/16"]
    servicesCidrBlocks: ["172.21.0.0/16"]
  vsphere:
    auth:
      address: 10.0.0.1
      user: admin
      password: admin
      insecure: true
    datacenter: vsphere_datacenter
    datastore: vsphere_datastore
    cluster: vsphere_cluster
    folder: FOLDER_EXAMPLE
    networkName: vsphere_dswitch
controlPlane:
  endpoint:
    host: 10.0.1.10
    port: 6443
  replicas: 3
  label: master
  kubeletExtraArgs:
    kubeReserved: ""
    systemReserved: ""
    evictionHard: ""
    evictionMinimumReclaim: ""
    evictionMaxPodGracePeriod: ""
    maxPods: ""
    seccompDefault: ""
  vsphereMachine:
    cpu: 4
    memoryMB: 8192
    diskGB: 45
    vmTemplate: redos-7.3-kube-1.28.4
workerPool:
  replicas: 3
  label: worker
  kubeletExtraArgs:
    kubeReserved: ""
    systemReserved: ""
    evictionHard: ""
    evictionMinimumReclaim: ""
    evictionMaxPodGracePeriod: ""
    maxPods: ""
    seccompDefault: ""
  vsphereMachine:
    cpu: 4
    memoryMB: 12288
    diskGB: 60
    vmTemplate: redos-7.3-kube-1.28.4
web:
  bootstrapPassword: "yourPassword123"
  hostname: rancher.redos-v21-ag.dev.stsoft.lan

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

Заметка

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

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

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

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

2023-09-10T17:49:46Z | INFO  | finished
В процессе установки кластера будет формироваться
журнал событий.

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

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

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

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

Для успешного доступа в интерфейс нужно добавить запись в ваш DNS-сервер.

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

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

login login

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

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

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