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

Baremetal

Требования к запуску нового подчинённого кластера

Заметка

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

Перед началом установки подчинённого кластера следует удовлетворить следующие требования:

  • Успешная установка управляющего кластера Bootsman
  • DNS-имя управляющего кластера должно быть в DNS-сервере и разрешается для будущего подчинённого кластера
  • Доступ подчинённого кластера к управляющему
  • Сумма символов будущего имени кластера и имени Namespace не должно превышать 30 символов

Установка

Установку можно провести двумя способами:

  • Использовать установщик Bootsman
  • Применить yaml-манифесты

Установка с помощью установщика Bootsman

Заметка

Во время заполнения формы вы можете в любой момент переключится в режим yaml

Для создания подчинённого кластера авторизуйтесь в управляющий кластер и нажмите кнопку Кнопка Создания Подчинённого Кластера

Вас перенаправит на страничку установщика для заполнения данных о будущем кластере.

Сначала укажите имя нового подчинённого кластера (1) и описание (2)

  1. Cluster Name
  2. Description

Cluster Name

Kubernetes Options

Kubernetes Options

Имя параметра Описание Комментарий
${SUBCLUSTER_KUBERNETES_VERSION} Версия Kubernetes
${SUBCLUSTER_NAMESPACE} Namespace управляющего кластера, который будет содержать объекты подчинённого кластера
${SUBCLUSTER_POD_CIDR} Подсеть для подов подчинённого кластера Не пересекается с управляющим или другим подчинённым кластером
${SUBCLUSTER_SERVICE_CIDR} Подсеть для сервисов подчинённого кластера Не пересекается с управляющим или другим подчинённым кластером

Provider Configuration

Provider Configuration

Имя параметра Описание Комментарий
${SSH_KEY_#} Публичный ключ, который будет добавлен на узлы подчиненного кластера

Private Registry

В случае, если вы хотите использовать наш репозиторий образов, то переключите параметр "Use private registry" в выключенное состояние и продолжайте заполнять в соотвествии с следующим разделом.

Private Registry Off

Если хотите произвести установку из локального репозитория, то заполните поля из формы ниже

Private Registry

Заметка

В случае использования уже существующего секрета на управляющем кластере, следует использовать настройку "Credential settings" "Use existing" Формы помогут найти секрет и указать имена полей, которые соотвествуют пользователю и паролю

Заметка

Advanced mode поможет вам задать специфические имена ключей в секрете. По умолчанию, username - пользователь, password - пароль

Имя параметра Описание Комментарий
${PRIVATE_REGISTRY_URL} URL вашего репозитория образов
${PRIVATE_REGISTRY_SECRET_NAMESPACE} Namespace секрета
${PRIVATE_REGISTRY_SECRET_NAME} Имя секрета
${PRIVATE_REGISTRY_USERNAME} Имя пользователя в репозитории образов
${PRIVATE_REGISTRY_PASSWORD} Пароль для пользователя в репозитории образов

Control Plane

Control Plane

Заметка

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

Имя параметра Описание Комментарий
${KCP_REPLICAS} Число реплик мастер-нод
${KCP_IP} Статический IP адрес для мастер-нод
${KUBE_API_PORT} Порт для kube-api По-умолчанию 6443
${MATCH_LABEL_KEY} Выбор узла из списка ByoHost по лейблу Опционально
${MATCH_LABEL_VALUE} Выбор узла из списка ByoHost по лейблу Опционально
${MATCH_RESOURCE_TYPE} Выбор узла из списка ByoHost по типу ресурсов Опционально
${MATCH_RESOURCE_RESERVATION} Минимальное требуемое число ресурсов. Узлы с меньшим значением не будут использованы Опционально
${MATCH_RESOURCE_LIMIT} Максимальное требуемое число ресурсов. Узлы с большим значением не будут использованы Опционально

WorkerPool

Заметка

Вы не ограничены в одном типе ВМ, предназначенных для нагрузки. Для создания дополнительного пула виртуальных машин используйте кнопку

Add Worker Pool

Заметка

Для работы графических ускорителей установите значения для выбора узлов по GPU ( ${MATCH_RESOURCE_TYPE} и ${MATCH_RESOURCE_RESERVATION} ) Если потребуется используйте дополнительные селекторы по LABEL

Worker Template

Имя параметра Описание Комментарий
${SUBCLUSTER_WORKERPOOL_NAME} Имя пула виртуальных машин
${WORKER_REPLICAS} Число виртуальных машин
${MATCH_LABEL_KEY} Выбор узла из списка ByoHost по лейблу Опционально
${MATCH_LABEL_VALUE} Выбор узла из списка ByoHost по лейблу Опционально
${MATCH_RESOURCE_TYPE} Выбор узла из списка ByoHost по типу ресурсов Опционально
${MATCH_RESOURCE_RESERVATION} Минимальное требуемое число ресурсов. Узлы с меньшим значением не будут использованы Опционально
${MATCH_RESOURCE_LIMIT} Максимальное требуемое число ресурсов. Узлы с большим значением не будут использованы Опционально

Установка с помощью yaml-манифестов

Если вам удобнее способ применения yaml-манифестов, то ниже есть примеры. Заполните их в соответствии с описанием из главы, представленной ранее.

Для применения yaml-манифестов можно использовать kubectl

kubectl apply -f Cluster.yaml
kubectl apply -f Workerpool.yaml

apiVersion: provisioning.bootsman.tech/v1alpha1
kind: Cluster
metadata:
  name: ${SUBCLUSTER_NAME}
  namespace: ${SUBCLUSTER_NAMESPACE}
spec:
  clusterType: capi
  capiConfig:
    kubernetesVersion: ${SUBCLUSTER_KUBERNETES_VERSION}
    registry:
      url: ${REGISTRY_URL}
      credentials:
        username: ${REGISTRY_USERNAME}
        password: ${REGISTRY_PASSWORD}
    controlPlane:
      replicas: ${KCP_REPLICAS}
      endpoint:
        host: ${KCP_IP}
        port: ${KUBE_API_PORT}
    infrastructure:
      provider: baremetal
      bareMetalProviderConfig:
        selector:
          matchLabels: 
            ${MATCH_LABEL_KEY}:${MATCH_LABEL_VALUE} 
        resources:
          requests: 
            ${MATCH_RESOURCE_TYPE}:${MATCH_RESOURCE_RESERVATION}
          limits: 
            ${MATCH_RESOURCE_TYPE}:${MATCH_RESOURCE_LIMIT}
    network:
      podsCidrBlocks:
        - ${SUBCLUSTER_POD_CIDR}
      servicesCidrBlocks:
        - ${SUBCLUSTER_SERVICE_CIDR}
    kubeletExtraArgs:
      kubeReserved: ''
      systemReserved: ''
      evictionHard: ''
      evictionMinimumReclaim: ''
      evictionMaxPodGracePeriod: ''
      maxPods: ''
apiVersion: provisioning.bootsman.tech/v1alpha1
kind: WorkerPool
metadata:
  name: ${SUBCLUSTER_WORKERPOOL_NAME}
  namespace: ${SUBCLUSTER_NAMESPACE}
spec:
  clusterName: ${SUBCLUSTER_NAME}
  kubernetesVersion: ${SUBCLUSTER_KUBERNETES_VERSION}
  replicas: ${WORKER_REPLICAS}
  infrastructure:
    provider: baremetal
    bareMetalProviderConfig:
      selector:
        matchLabels: 
          ${MATCH_LABEL_KEY}:${MATCH_LABEL_VALUE} 
      resources:
        requests: 
          ${MATCH_RESOURCE_TYPE}:${MATCH_RESOURCE_RESERVATION}
        limits: 
          ${MATCH_RESOURCE_TYPE}:${MATCH_RESOURCE_LIMIT}
  kubeletExtraArgs:
    kubeReserved: ''
    systemReserved: ''
    evictionHard: ''
    evictionMinimumReclaim: ''
    evictionMaxPodGracePeriod: ''
    maxPods: ''