Baremetal
Требования к запуску нового подчинённого кластера
Перед началом установки подчинённого кластера следует удовлетворить следующие требования:
- Успешная установка управляющего кластера Bootsman
- DNS-имя управляющего кластера должно быть в DNS-сервере и разрешается для будущего подчинённого кластера
- Доступ подчинённого кластера к управляющему
- Сумма символов будущего имени кластера и имени Namespace не должно превышать 30 символов
Установка
Установку можно провести двумя способами:
- Использовать установщик Bootsman
- Применить yaml-манифесты
Установка с помощью установщика Bootsman
Заметка
Во время заполнения формы вы можете в любой момент переключится в режим yaml
Для создания подчинённого кластера авторизуйтесь в управляющий кластер и нажмите кнопку 
Вас перенаправит на страничку установщика для заполнения данных о будущем кластере.
Сначала укажите имя нового подчинённого кластера (1) и описание (2)
- Cluster Name
- Description
Далее заполните поля в блоке "Kubernetes Options"
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${SUBCLUSTER_KUBERNETES_VERSION} | Версия Kubernetes | |
| ${SUBCLUSTER_NAMESPACE} | Namespace управляющего кластера, который будет содержать объекты подчинённого кластера | |
| ${SUBCLUSTER_POD_CIDR} | Подсеть для подов подчинённого кластера | Не пересекается с управляющим или другим подчинённым кластером |
| ${SUBCLUSTER_SERVICE_CIDR} | Подсеть для сервисов подчинённого кластера | Не пересекается с управляющим или другим подчинённым кластером |
| ${OS} | Используемая операционная система для подчинённого кластера | |
| ${REGISTRY_URL} | Подсеть для сервисов подчинённого кластера | Не пересекается с управляющим или другим подчинённым кластером |
Далее заполните поля в блоке "Control Plane"
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${KCP_REPLICAS} | Число реплик мастер-нод | |
| ${KCP_IP} | Статический IP адрес для мастер-нод | |
| ${KUBE_API_PORT} | Порт для kube-api | По-умолчанию 6443 |
Далее добавьте информацию о приватном репозитории
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${REGISTRY_DOMAIN_NAME} | Доменное имя вашего регистри | |
| ${REGISTRY_USERNAME} | Пользователь для вашего регистри | Измеряется в MiB |
| ${REGISTRY_PASSWORD} | Пароль для вашего регистри | Измеряется в GiB |
| ${REGISTRY_URL} | Полный путь до образов внутри вашего регистри | Измеряется в GiB |
Дальнейшая настройка касается создания пула worker-нод
Заметка
Вы не ограничены в одном типе ВМ, предназначенных для нагрузки. Для создания дополнительного пула виртуальных машин используйте кнопку
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${SUBCLUSTER_WORKERPOOL_NAME} | Имя пул виртуальных машин | |
| ${WORKER_REPLICAS} | Число виртуальных машин |
Установка с помощью 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_DOMAIN_NAME}
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: {}
os: ${OS}
bundleRepo: ${REGISTRY_URL}
resources:
requests: {}
limits: {}
network:
podsCidrBlocks:
- ${SUBCLUSTER_POD_CIDR}
servicesCidrBlocks:
- ${SUBCLUSTER_SERVICE_CIDR}
kubeletExtraArgs:
kubeReserved: ''
systemReserved: ''
evictionHard: ''
evictionMinimumReclaim: ''
evictionMaxPodGracePeriod: ''
maxPods: ''
airgap:
repository: ${REGISTRY_URL}
addons:
repoURL: ${REGISTRY_URL}
apiVersion: provisioning.bootsman.tech/v1alpha1
kind: WorkerPool
metadata:
name: ${SUBCLUSTER_WORKERPOOL_NAME}
namespace: ${SUBCLUSTER_NAMESPACE}
spec:
clusterName: ${SUBCLUSTER_NAME}
infrastructure:
bareMetalProviderConfig:
bundleRepo: ${REGISTRY_URL}
os: ${OS}
resources:
limits: {}
requests: {}
selector:
matchLabels: {}
provider: baremetal
kubernetesVersion: ${SUBCLUSTER_KUBERNETES_VERSION}
replicas: ${WORKER_REPLICAS}





