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

Установка в гипервизоре vSphere

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

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

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

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

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

На АРМ создайте конфиг файл 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
    addonHelmTimeout: 5m
infrastructure:
    clusterNetwork:
        podCidrBlocks: ["172.24.0.0/13"]
        servicesCidrBlocks: ["172.16.0.0/16"]
    vsphere:
        auth:
            address: ${ VSPHERE_SERV_ADDRESS }
            user: ${ VSPHERE_SERV_USER }
            password: ${ VSPHERE_SERV_PASSWORD }
            insecure: ${ VSPHERE_SERV_INSECURE }
        datacenter: ${ VSPHERE_CONFIG_DATACENTER }
        datastore: ${ VSPHERE_CONFIG_DATASTORE }
        cluster: ${ VSPHERE_CONFIG_CLUSTER }
        folder: ${ VSPHERE_CONFIG_FOLDER }
        networkName: ${ VSPHERE_CONFIG_NETWORKNAME }
controlPlane:
    endpoint:
        host: ${ K8SCPIP }
        port: 6443
    replicas: ${ CONTROLPLANE_COUNT }
    label: master
    kubeletExtraArgs:
        kubeReserved: ""
        systemReserved: ""
        evictionHard: ""
        evictionMinimumReclaim: ""
        evictionMaxPodGracePeriod: ""
        maxPods: ""
        seccompDefault: ""
    vsphereMachine:
        cpu: ${ VSPHERE_CONFIG_VM_CONTROLPLANE_CPU }
        memoryMB: ${ VSPHERE_CONFIG_VM_CONTROLPLANE_MEMORY_MB }
        diskGB: ${ VSPHERE_CONFIG_VM_CONTROLPLANE_DISK_GB }
        vmTemplate: ${ VSPHERE_CONFIG_VMTEMPLATE }
workerPool:
    replicas: ${ WORKER_COUNT }
    label: worker
    kubeletExtraArgs:
        kubeReserved: ""
        systemReserved: ""
        evictionHard: ""
        evictionMinimumReclaim: ""
        evictionMaxPodGracePeriod: ""
        maxPods: ""
        seccompDefault: ""
    vsphereMachine:
        cpu: ${ VSPHERE_CONFIG_VM_WORKER_CPU }
        memoryMB: ${ VSPHERE_CONFIG_VM_WORKER_MEMORY_MB }
        diskGB: ${ VSPHERE_CONFIG_VM_WORKER_DISK_GB }
        vmTemplate: ${ VSPHERE_CONFIG_VMTEMPLATE }
web:
    bootstrapPassword: ${ ADDONS_RANCHER_WEBHOSTNAME }
    hostname: ${ ADDONS_RANCHER_WEBHOSTNAME }
currentMachineIp: ${ CURRENT_MACHINE_IP_2 }

Заметка

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

Описание параметров

Имя параметра Описание Комментарий
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 портал платформы
CURRENT_MACHINE_IP IP адрес АРМ администратора
ADDONS_RANCHER_BOOTSTRAPPASSWORD Первоначальный пароль от web портала
CONTROLPLANE_COUNT Количество мастеров Может принимать значения 3 или 5
WORKER_COUNT Количество воркеров Должно быть >=3
K8SCPIP IP ControlPlane
VSPHERE_SERV_ADDRESS IP адрес или доменное имя вашего vCenter
VSPHERE_SERV_INSECURE Разрешить доступ при отсутствии валидного сертификата на vSphere
VSPHERE_SERV_USER Пользователь для подключения к vCenter
VSPHERE_SERV_PASSWORD Пароль для подключения к vCenter
VSPHERE_CONFIG_DATACENTER Имя датацентра
VSPHERE_CONFIG_CLUSTER Имя кластера
VSPHERE_CONFIG_FOLDER Имя директории, в которых будут размещены новые виртуальные машины
VSPHERE_CONFIG_VMTEMPLATE Имя шаблона виртуальной машины, из которого будут созданы новые виртуальные машины
VSPHERE_CONFIG_DATASTORE Имя хранилища, в котором будут размещены новые виртуальные машины
VSPHERE_CONFIG_NETWORKNAME Имя сети, в которую будут подключены новые виртуальные машины
VSPHERE_CONFIG_VM_CONTROLPLANE_CPU Число vCPU для мастер-нод (минимум 4)
VSPHERE_CONFIG_VM_CONTROLPLANE_MEMORY_MB Объём оперативной памяти мастер-нод, MB (минимум 8192)
VSPHERE_CONFIG_VM_CONTROLPLANE_DISK_GB Объём дискового хранилища мастер-нод, GB (минимум 45)
VSPHERE_CONFIG_VM_WORKER_CPU Число vCPU для воркер-нод (минимум 4)
VSPHERE_CONFIG_VM_WORKER_MEMORY_MB Объём оперативной памяти воркер-нод, MB (минимум 12288)
VSPHERE_CONFIG_VM_WORKER_DISK_GB Объём дискового хранилища воркер-нод, GB (минимум 60)
CURRENT_MACHINE_IP_2 Дополнительный адрес АРМ администратора. Опционально Для доступа в Kind кластеру с сторонней машины

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

kubernetesVersion: v1.27.6
sshAuthorizedKeys:
    - ssh-ed25519 AAAAC3NzaC1lZKKtLOCNv2g bootsman@stsoft.ru
wait:
    clusterCtlTimeout: 30m0s
    operationTimeout: 40m0s
    operationRetryInterval: 15s
    objCreateTimeout: 4m0s
    objCreateInterval: 5s
    addonHelmTimeout: 5m
infrastructure:
    clusterNetwork:
        podCidrBlocks: ["172.24.0.0/13"]
        servicesCidrBlocks: ["172.16.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
currentMachineIp: 10.0.1.111
kubernetesVersion: v1.27.6
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.24.0.0/13"]
        servicesCidrBlocks: ["172.16.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
currentMachineIp: 10.0.1.111

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

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

export LICENSE=ZzSGquD8GWb2zthw7XJR

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

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

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

Заметка

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

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

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

Где:

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

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

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

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

После окончания установки определите IP адрес любого воркера и внесите его в конфиг DNS-сервера. Перейдите в web-панель платформы по адресу, который указывали в конфигурационном файле. (1) Хотя бы один вход в web-панель управления платформой обязателен для корректной работы управляющего кластера. После входа в панель управления происходит донастройка необходимых компонентов для работы платформы. Откроется визард настройки с запросом пароля, который указывали в конфиге. (2)

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

  1. ADDONS_RANCHER_WEBHOSTNAME
  2. ADDONS_RANCHER_BOOTSTRAPPASSWORD

Удаление установочного кластера kind

В случае если возникли ошибки при установке кластера, перейдите на страницу vSphere и остановите ваши ВМ, а так же в случае необходимости удалите их.

Внимание!

При удалении ВМ, нужные вам данные будут потеряны.

Выполните подключение к АРМ, например:

ssh ${user}@${address_arm}
Где:

  • ${user} - ваш пользователь;

  • ${address_arm} - адрес вашего АРМ.

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

./bootsmanctl management delete ${cluster_name}

Где ${cluster_name} - имя кластера.