Тема
Baremetal
Требования к запуску нового подчинённого кластера
Заметка
Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее
Перед началом установки подчинённого кластера следует удовлетворить следующие требования:
- Успешная установка управляющего кластера Bootsman
- DNS-имя управляющего кластера должно быть в DNS-сервере и разрешается для будущего подчинённого кластера
- Доступ подчинённого кластера к управляющему
- Сумма символов будущего имени кластера и имени Namespace не должно превышать 30 символов
Установка
Установку можно провести двумя способами:
- Использовать установщик Bootsman
- Применить yaml-манифесты
Установка с помощью установщика Bootsman
Заметка
Во время заполнения формы вы можете в любой момент переключится в режим yaml
Для создания подчинённого кластера авторизуйтесь в управляющий кластер и нажмите кнопку 
Вас перенаправит на страничку установщика для заполнения данных о будущем кластере.
Сначала укажите имя нового подчинённого кластера (1) и описание (2)
- Cluster Name
- Description

Kubernetes Options

| Имя параметра | Описание | Комментарий |
|---|---|---|
| $ | Версия Kubernetes | |
| $ | Namespace управляющего кластера, который будет содержать объекты подчинённого кластера | |
| $ | Подсеть для подов подчинённого кластера | Не пересекается с управляющим или другим подчинённым кластером |
| $ | Подсеть для сервисов подчинённого кластера | Не пересекается с управляющим или другим подчинённым кластером |
Provider Configuration

| Имя параметра | Описание | Комментарий |
|---|---|---|
| $ | Публичный ключ, который будет добавлен на узлы подчиненного кластера |
Private Registry
В случае, если вы хотите использовать наш репозиторий образов, то переключите параметр "Use private registry" в выключенное состояние и продолжайте заполнять в соотвествии с следующим разделом.

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

Заметка
В случае использования уже существующего секрета на управляющем кластере, следует использовать настройку "Credential settings" "Use existing" Формы помогут найти секрет и указать имена полей, которые соотвествуют пользователю и паролю
Заметка
Advanced mode поможет вам задать специфические имена ключей в секрете. По умолчанию, username - пользователь, password - пароль
| Имя параметра | Описание | Комментарий |
|---|---|---|
| $ | URL вашего репозитория образов | |
| $ | Namespace секрета | |
| $ | Имя секрета | |
| $ | Имя пользователя в репозитории образов | |
| $ | Пароль для пользователя в репозитории образов |
Control Plane

Заметка
Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее
| Имя параметра | Описание | Комментарий |
|---|---|---|
| $ | Число реплик мастер-нод | |
| $ | Статический IP адрес для мастер-нод | |
| $ | Порт для kube-api | По-умолчанию 6443 |
| $ | Выбор узла из списка ByoHost по лейблу | Опционально |
| $ | Выбор узла из списка ByoHost по лейблу | Опционально |
| $ | Выбор узла из списка ByoHost по типу ресурсов | Опционально |
| $ | Минимальное требуемое число ресурсов. Узлы с меньшим значением не будут использованы | Опционально |
| $ | Максимальное требуемое число ресурсов. Узлы с большим значением не будут использованы | Опционально |
WorkerPool
Заметка
Вы не ограничены в одном типе ВМ, предназначенных для нагрузки. Для создания дополнительного пула виртуальных машин используйте кнопку

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

| Имя параметра | Описание | Комментарий |
|---|---|---|
| $ | Имя пула виртуальных машин | |
| $ | Число виртуальных машин | |
| $ | Выбор узла из списка ByoHost по лейблу | Опционально |
| $ | Выбор узла из списка ByoHost по лейблу | Опционально |
| $ | Выбор узла из списка ByoHost по типу ресурсов | Опционально |
| $ | Минимальное требуемое число ресурсов. Узлы с меньшим значением не будут использованы | Опционально |
| $ | Максимальное требуемое число ресурсов. Узлы с большим значением не будут использованы | Опционально |
Установка с помощью yaml-манифестов
Если вам удобнее способ применения yaml-манифестов, то ниже есть примеры. Заполните их в соответствии с описанием из главы, представленной ранее.
Для применения yaml-манифестов можно использовать kubectl
bash
kubectl apply -f Cluster.yaml
kubectl apply -f Workerpool.yamlyaml
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: ''yaml
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: ''