Baremetal
Требования к запуску нового подчинённого кластера
Заметка
Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее
Перед началом установки подчинённого кластера следует удовлетворить следующие требования:
- Успешная установка управляющего кластера Bootsman
- DNS-имя управляющего кластера должно быть в DNS-сервере и разрешается для будущего подчинённого кластера
- Доступ подчинённого кластера к управляющему
- Сумма символов будущего имени кластера и имени Namespace не должно превышать 30 символов
Установка
Установку можно провести двумя способами:
- Использовать установщик Bootsman
- Применить yaml-манифесты
Установка с помощью установщика Bootsman
Заметка
Во время заполнения формы вы можете в любой момент переключится в режим yaml
Для создания подчинённого кластера авторизуйтесь в управляющий кластер и нажмите кнопку 
Вас перенаправит на страничку установщика для заполнения данных о будущем кластере.
Сначала укажите имя нового подчинённого кластера (1)
- Cluster Name
Kubernetes Options
Заметка
Pod и Service cidr можно изменить, следуя правилам: маска блоков должна быть не менее 16, блоки не должны пересекаться
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${SUBCLUSTER_KUBERNETES_VERSION} | Версия Kubernetes | |
| ${SUBCLUSTER_NAMESPACE} | Namespace управляющего кластера, который будет содержать объекты подчинённого кластера | |
| ${SUBCLUSTER_POD_CIDR} | Подсеть для подов подчинённого кластера | Не пересекается с управляющим или другим подчинённым кластером |
| ${SUBCLUSTER_SERVICE_CIDR} | Подсеть для сервисов подчинённого кластера | Не пересекается с управляющим или другим подчинённым кластером |
Provider Configuration
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${SSH_KEY_#} | Публичный ключ, который будет добавлен на узлы подчиненного кластера |
Private Registry
В случае, если вы хотите использовать наш репозиторий образов, то переключите параметр "Use 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
Предупреждение
K8SCPIP - это IP-адрес, который будет использоваться как адрес kube-apiserver. Он должен быть зарезервирован под задачу обеспечения отказоустойчивости IP сервера и не должен выделяться каким либо другим ресурсом
Заметка
Для работы кластера 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
Заметка
Вы не ограничены в одном типе ВМ, предназначенных для нагрузки. Для создания дополнительного пула виртуальных машин используйте кнопку
Заметка
Для работы графических ускорителей установите значения для выбора узлов по GPU ( ${MATCH_RESOURCE_TYPE} и ${MATCH_RESOURCE_RESERVATION} ) Если потребуется используйте дополнительные селекторы по LABEL
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${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: ''







