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

Установка управляющего кластера

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

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

Заметка

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

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

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

Заметка

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

kubernetesVersion: K8S_VERSION (1)
# Раскоментируйте блок в случае airgap установки
# registry:
#   username: HARBOR_CREDS_USER (2)
#   password: HARBOR_CREDS_PASSWD (3)
#   path: HARBOR_CREDS_URL (4)
#   insecure: HARBOR_CREDS_INSECURE (5)
sshAuthorizedKeys: (6)
  - 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"] (7)
    servicesCidrBlocks: ["172.21.0.0/16"] (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: CONTROLPLANE_COUNT (16)
  label: ""
  kubeletExtraArgs:
    kubeReserved: ""
    systemReserved: ""
    evictionHard: ""
    evictionMinimumReclaim: ""
    evictionMaxPodGracePeriod: ""
    maxPods: ""
    seccompDefault: ""
  brestMachine:
    template:
      name: BREST_TEMPLATE_IMAGE_NAME (17)
    cpu: BREST_VM_CONTROLPLANE_CPU (18)
    memory: BREST_VM_CONTROLPLANE_MEMORY_GB (19)
    disk: BREST_VM_CONTROLPLANE_DISK_GB (20)
workerPool:
  replicas: WORKER_REPLICAS (21)
  label: ""
  kubeletExtraArgs:
    kubeReserved: ""
    systemReserved: ""
    evictionHard: ""
    evictionMinimumReclaim: ""
    evictionMaxPodGracePeriod: ""
    maxPods: ""
    seccompDefault: ""
  brestMachine:
    template:
      name: BREST_TEMPLATE_IMAGE_NAME (22)
    cpu: BREST_VM_WORKERPOOL_CPU (23)
    memory: BREST_VM_WORKERPOOL_MEMORY_GB (24)
    disk: BREST_VM_WORKERPOOL_DISK_GB (25)
web:
  bootstrapPassword: ADDONS_RANCHER_WEBHOSTNAME (26)
  hostname: ADDONS_RANCHER_WEBHOSTNAME (27)
currentMachineIp: CURRENT_MACHINE_IP_2 (28)
  1. Версия Kubernetes. Поддерживаемые версии
  2. Имя пользователя в репозитории образов. Если установка будет производится online блок registry можно удалить
  3. Пароль для пользователя в репозитории образов. Если установка будет производится online блок registry можно удалить
  4. URL вашего репозитория образов. Если установка будет производится online блок registry можно удалить
  5. Это служебный параметр, всегда будет false
  6. Список ssh-ключей, которые будут добавлены на узлы
  7. Блок адресов для Pods.

    Должен не пересекаться с другими блоками внутри одного Kubernetes кластера.

    Минимальный размер блока /16
    Пример:

      podsCidrBlocks:
        - "172.20.0.0/16"
    
  8. Блок адресов для Service.

    Должен не пересекаться с другими блоками внутри одного Kubernetes кластера.

    Минимальный размер блока /16
    Пример:

      servicesCidrBlocks:
        - "172.21.0.0/16"
    
  9. Имя сети, в которую будут подключены новые виртуальные машины
  10. Пользователь для подключения к гипервизору
  11. Пароль для подключения
  12. URL для подключения.
    Пример:
    http://10.0.0.10:2633/RPC2
    
  13. IP ControlPlane Подробнее
  14. Порт kube-api. По-умолчанию 6443
  15. Количество узлов с ролью master.

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

  16. Имя шаблона виртуальной машины, из которого будут созданы новые виртуальные машины
  17. Число vCPU.

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

  18. Объём оперативной памяти.

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

  19. Объём дискового хранилища.

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

  20. Количество узлов в workerpool. Сумма узлов во всех workerpool должна быть >=3
  21. Имя шаблона виртуальной машины, из которого будут созданы новые виртуальные машины
  22. Число vCPU.

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

  23. Объём оперативной памяти.

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

  24. Объём дискового хранилища.

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

  25. Первоначальный пароль от web портала
  26. URL, по которому будет доступен web портал платформы
  27. Дополнительный адрес АРМ администратора. Опционально. Для доступа в Kind кластеру с сторонней машины
  28. Технический параметр. Значение всегда "802.1Q"
  29. vlan ID внутри гипервизора Брест
  30. Начало DHCP-пула Бреста
  31. Число IP-адресов в DHCP-пуле
  32. Физическое устройство на узле
  33. Адрес шлюза

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

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"]
  brest:
    network:
      useExisting: true
      name: vlan001
    auth:
      username: bootsman
      password: 12345678
      identityEndpoint: http://10.0.0.10:2633/RPC2
controlPlane:
  endpoint:
    host: 10.0.1.10
    port: 6443
  replicas: 3
  label: master
  kubeletExtraArgs:
    kubeReserved: ""
    systemReserved: ""
    evictionHard: ""
    evictionMinimumReclaim: ""
    evictionMaxPodGracePeriod: ""
    maxPods: ""
    seccompDefault: ""
  brestMachine:
    template:
      name: bootsman-redos-brest-k8s-1.27.6
    cpu: "4"
    memory: "8Gi"
    disk: "45Gi"
workerPool:
  replicas: 3
  label: worker
  kubeletExtraArgs:
    kubeReserved: ""
    systemReserved: ""
    evictionHard: ""
    evictionMinimumReclaim: ""
    evictionMaxPodGracePeriod: ""
    maxPods: ""
    seccompDefault: ""
  brestMachine:
    template:
      name: bootsman-redos-brest-k8s-1.27.6
    cpu: "4"
    memory: "12Gi"
    disk: "60Gi"
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"]
  brest:
    network:
      useExisting: true
      name: vlan001
    auth:
      username: bootsman
      password: 12345678
      identityEndpoint: http://10.0.0.10:2633/RPC2
controlPlane:
  endpoint:
    host: 10.0.1.10
    port: 6443
  replicas: 3
  label: master
  kubeletExtraArgs:
    kubeReserved: ""
    systemReserved: ""
    evictionHard: ""
    evictionMinimumReclaim: ""
    evictionMaxPodGracePeriod: ""
    maxPods: ""
    seccompDefault: ""
  brestMachine:
    template:
      name: bootsman-redos-brest-k8s-1.27.6
    cpu: "4"
    memory: "8Gi"
    disk: "45Gi"
workerPool:
  replicas: 3
  label: worker
  kubeletExtraArgs:
    kubeReserved: ""
    systemReserved: ""
    evictionHard: ""
    evictionMinimumReclaim: ""
    evictionMaxPodGracePeriod: ""
    maxPods: ""
    seccompDefault: ""
  brestMachine:
    template:
      name: bootsman-redos-brest-k8s-1.27.6
    cpu: "4"
    memory: "12Gi"
    disk: "60Gi"
web:
  bootstrapPassword: "yourPassword123"
  hostname: rancher.redos-v21-ag.dev.stsoft.lan
currentMachineIp: 10.0.1.111

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

Заметка

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

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

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

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

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

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

После окончания установки определите IP адрес любого узла с ролью worker и внесите его в конфиг DNS-сервера.
Используйте адрес web-панели (1) и пароль (2) из конфигурационном файла (bootsman.config.yaml) для успешной авторизации.

  1. ADDONS_RANCHER_WEBHOSTNAME
  2. ADDONS_RANCHER_BOOTSTRAPPASSWORD

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