Тема
Проверка требований
Требуется vSphere версии 6.7 u3 или выше
Пользователь vSphere
Если требуется использовать ограниченного пользователя, воспользуйтесь инструкцией
Шаг 0. Подготовка к инсталляции платформы Боцман
Перед началом инсталляции платформы "Боцман" убедитесь, что выполнены все шаги по подготовке:
- Подготовлен АРМ Администратора АРМ
- Подготовлен образ операционной системы
Шаг 1. Подготовка конфигурационного файла (config)
На АРМ создайте конфиг файл bootsman.config.yaml в той же директории, где расположен инсталлятор-bootsmanctl
bash
touch bootsman.config.yamlИ откройте его для редактирования любым текстовом редакторе, например nano:
bash
nano bootsman.config.yamlЗаметка
Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее
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 (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)- Версия Kubernetes. Поддерживаемые версии
- Имя пользователя в репозитории образов.
Если установка будет производится online блок registry можно удалить - Пароль для пользователя в репозитории образов.
Если установка будет производится online блок registry можно удалить - URL вашего репозитория образов.
Если установка будет производится online блок registry можно удалить - Это служебный параметр, всегда будет false
- Список ssh-ключей, которые будут добавлены на узлы
- Блок адресов для Pods.
Должен не пересекаться с другими блоками внутри одного Kubernetes кластера.
Допустимый размер блока /[1-20]
Пример:podsCidrBlocks: ["172.20.0.0/16"] - Блок адресов для Service.
Должен не пересекаться с другими блоками внутри одного Kubernetes кластера.
Допустимый размер блока /[1-20]
Пример:servicesCidrBlocks: ["172.21.0.0/16"] - IP адрес или доменное имя вашего vCenter
- Пользователь для подключения к vCenter
- Пароль для подключения к vCenter
- Разрешить доступ при отсутствии валидного сертификата на vSphere
- Имя датацентра
- Имя хранилища, в котором будут размещены новые виртуальные машины
- Имя кластера
- Имя директории, в которых будут размещены новые виртуальные машины
- Имя сети, в которую будут подключены новые виртуальные машины
- IP-адрес балансировщика kube-apiserver для обеспечения отказоустойчивости.
Адрес должен быть свободен и не состоять в dhcp-пулах Подробнее - Порт kube-api. По-умолчанию 6443
- Количество узлов с ролью master.
Может принимать значения 3 или 5 - Число CPU.
Требования к инфраструктуре - Объём оперативной памяти. Измеряется в MB.
Требования к инфраструктуре - Объём дискового пространства. Измеряется в GB.
Требования к инфраструктуре - Имя шаблона виртуальной машины, из которого будут созданы новые узлы с ролью master
- Число узлов в workerpool. Сумма узлов во всех workerpool должна быть >=3
- Число CPU.
Требования к инфраструктуре - Объём оперативной памяти. Измеряется в MB.
Требования к инфраструктуре - Объём дискового пространства. Измеряется в GB.
Требования к инфраструктуре - Имя шаблона виртуальной машины, из которого будут созданы новые узлы с ролью worker
- Первоначальный пароль от web портала
- Доменное имя, по которому будет доступен web портал платформы.
Имя должно иметь запись на DNS-сервере.
Нельзя использовать Hosts
Нельзя указывать IP-адрес - blob
- Таймаут на все действия bootsmanctl
- Таймаут по-умолчанию для всех операций
- Интервал по-умолчанию для всех операций
- Таймаут на создание или обновление объектов
- Интервал повторной попытки создания или обновления объектов
- Таймаут на установка модулей
- Время, которое дается узлу на самостоятельное восстановление, прежде чем вмешается MachineHealthCheck.
По-умолчанию 10m
Подробнее - Пороговое значение для MachineHealthCheck, при превышении которого не будет выполняться исправления.
Для узлов с ролью master, значение по-умолчанию 100%.
Для узлов с ролью worker, значение по-умолчанию 40%
Подробнее - Время, которое дается узлу на самостоятельное восстановление, прежде чем вмешается MachineHealthCheck.
По-умолчанию 10m
Подробнее - Пороговое значение для MachineHealthCheck, при превышении которого не будет выполняться исправления.
Для узлов с ролью master, значение по-умолчанию 100%.
Для узлов с ролью worker, значение по-умолчанию 40%
Подробнее
Пример заполненного файла конфигурации:
Шаг 2. Запуск установки
Заметка
Установка платформы "Боцман" запускается с заранее подготовленным АРМ. Все последующие команды выполняются на АРМ.
Выполните команду запуска процесса установки:
./bootsmanctl mgmt create {++cluster-name++} -i vsphere -c bootsman.config.yaml (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)


login: admin
password: {++BOOTSMAN_WEB_BOOTSTRAPPASSWORD++} (2)- Адрес web-панели содержится в опции BOOTSMAN_WEB_HOSTNAME
- Пароль для доступа в web-панель содержится в опции BOOTSMAN_WEB_BOOTSTRAPPASSWORD
Вы авторизовались под пользователем admin. Далее рекомендуем сменить этот пароль с помощью стандартного меню управления пользователями.