Установка подчиненного кластера
Требования к запуску нового подчинённого кластера
Заметка
Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее
Перед началом установки подчинённого кластера следует удовлетворить следующие требования:
- Успешная установка управляющего кластера Bootsman
- DNS-имя управляющего кластера должно быть в DNS-сервере и разрешается для будущего подчинённого кластера
- Доступ подчинённого кластера к управляющему
- Сумма символов будущего имени кластера и имени Namespace не должно превышать 30 символов
Наименования кластеров
Имя подчиненного кластера: test-cluster
Namespace: test-cluster
Сумма символов: 24
Имя подчиненного кластера: very-very-long-name-cluster
Namespace: test-cluster
Сумма символов: 39
Имя подчиненного кластера: test-cluster
Namespace: very-very-long-namespace
Сумма символов: 36
Установка
Установку можно провести двумя способами:
- Использовать установщик Bootsman
- Применить yaml-манифесты
Разворачивание с помощью установщика
Заметка
Во время заполнения формы вы можете в любой момент переключиться в режим yaml
Для создания подчинённого кластера авторизуйтесь в управляющий кластер и нажмите кнопку 
Откроется страница установщика для заполнения данных о будущем кластере.
Сначала укажите имя нового подчинённого кластера (1)
- SUBCLUSTER_NAME
Kubernetes Options
| Имя параметра | Описание |
|---|---|
| SUBCLUSTER_KUBERNETES_VERSION | Версия Kubernetes. Поддерживаемые версии |
| SUBCLUSTER_NAMESPACE | Namespace управляющего кластера, который будет содержать объекты подчинённого кластера |
| SUBCLUSTER_POD_CIDR | Блок адресов для Pods. Должен не пересекаться с другими блоками внутри одного Kubernetes кластера и реальными сетями вашей инфраструктуры. Допустимый размер блока /[1-20] Пример:
|
| SUBCLUSTER_SERVICE_CIDR | Блок адресов для Service. Должен не пересекаться с другими блоками внутри одного Kubernetes кластера и реальными сетями вашей инфраструктуры. Допустимый размер блока /[1-20] Пример:
|
Provider Configuration
| Имя параметра | Описание |
|---|---|
| VK_PROJECT_ID | ID проекта в облаке VK. Можно узнать в "Настройках проекта" в разделе "Terraform" параметр "Project ID / tenant_id" |
| VK_REGION_NAME | Служебный параметр для работы с API. Можно узнать в "Настройках проекта" в разделе "Доступ по API" параметр "Region Name |
| VK_PRIVACY | Выбор режима взаимодействия с кластером Поддерживаемые значения Public, PrivateMachines, Private. Подробнее |
| VK_ENDPOINT | URL для API доступа к вашему проекту. Можно узнать в "Настройках проекта" в разделе "Доступ по API" параметр "Auth URL" |
| VK_USER_DOMAN_NAME | Технический параметр. Всегда будет "users". Можно узнать в "Настройках проекта" в разделе "Доступ по API" параметр "Auth URL" |
| VK_USERNAME | Имя пользователя для авторизации в VK Cloud |
| VK_PASSWORD | Пароль пользователя для авторизации в VK Cloud |
| SSH_KEY_# | Список ssh-ключей, которые будут добавлены на узлы |
Private Registry
В случае, если вы хотите использовать наш репозиторий образов, то переключите параметр "Use private registry" в выключенное состояние и продолжайте заполнять в соответствии с следующим разделом.
Если хотите произвести установку из локального репозитория, то заполните поля из формы ниже
Заметка
В случае использования уже существующего секрета на управляющем кластере, следует использовать настройку "Credential settings" "Use existing" Формы помогут найти секрет и указать имена полей, которые соответствуют пользователю и паролю
Заметка
Advanced mode поможет вам задать специфические имена ключей в секрете. По умолчанию, username - пользователь, password - пароль
| Имя параметра | Описание |
|---|---|
| PRIVATE_REGISTRY_URL | URL вашего репозитория образов. Если установка будет производится online блок registry можно удалить |
| PRIVATE_REGISTRY_SECRET_NAMESPACE | Namespace, в котором размещен secret для авторизации в приватный репозиторий образов |
| PRIVATE_REGISTRY_SECRET_NAME | Имя secret для авторизации в приватный репозиторий образов |
| PRIVATE_REGISTRY_USERNAME | Имя пользователя в репозитории образов. Если установка будет производится online блок registry можно удалить |
| PRIVATE_REGISTRY_PASSWORD | Пароль для пользователя в репозитории образов. Если установка будет производится online блок registry можно удалить |
| PRIVATE_REGISTRY_SECRET_HOST_KEY | При использовании существующего secret. Имя ключа, содержащее параметр HOST |
| PRIVATE_REGISTRY_SECRET_USERNAME_KEY | При использовании существующего secret. Имя ключа, содержащее параметр USERNAME |
| PRIVATE_REGISTRY_SECRET_PASSWORD_KEY | При использовании существующего secret. Имя ключа, содержащее параметр PASSWORD |
Control Plane
| Имя параметра | Описание |
|---|---|
| KCP_REPLICAS | Количество узлов с ролью master. Может принимать значения 3 или 5 |
| KUBE_API_PORT | Порт kube-api. По-умолчанию 6443 |
| MHC_MAX_UNHEALTY | Пороговое значение для MachineHealthCheck, при превышении которого не будет выполняться исправления. Для узлов с ролью master, значение по-умолчанию 100%. Для узлов с ролью worker, значение по-умолчанию 40% |
| MHC_TIMEOUT | Время, которое дается узлу на самостоятельное восстановление, прежде чем вмешается MachineHealthCheck. По-умолчанию 10m |
Настройка Сети
Bootsman позволяет использовать как существующие сети и подсети VK Cloud, так и вновь созданные
| Имя параметра | Описание |
|---|---|
| VK_EXTERNAL_NETWORK_NAME | Технический параметр. Всегда будет "ext-net" |
| VK_NETWORK_NAME | Имя сети VK CLoud. Несовместим с VK_NETWORK_ID |
| VK_NETWORK_ID | ID существующей сети |
| VK_SUBNETWORK_NAME | Имя подсети VK CLoud. Несовместим с VK_SUBNETWORK_ID |
| VK_SUBNETWORK_ID | ID существующей подсети |
| VK_SUBNETWORK_CIDR | Адресное пространство для новой подсети VK CLoud. Несовместим с существующей подсетью |
| VK_ROUTER_NAME | Имя маршрутизатора VK CLoud. Несовместим с VK_ROUTER_ID |
| VK_ROUTER_ID | ID существующего роутера |
Шаблон виртуальных машин
| Имя параметра | Описание |
|---|---|
| VK_CONTROLPLANE_IMAGE_ID | ID образа операционной системы. Подготовьте ОС в соответствии с инструкцией или используйте уже подготовленные образа |
| VK_CONTROLPLANE_FLAVOR | Шаблон конфигурации облака VK. |
| VK_CONTROLPLANE_DISK_TYPE | Тип дисков. Подробнее о типах дисков |
| VK_CONTROLPLANE_DISK_SIZE | Объём дискового пространства. Измеряется в GiB. |
| VK_CONTROLPLANE_ZONE | Зона доступности VK Cloud. Возможно задать более 1 зоны. |
WorkerPool
Шаблон виртуальных машин
Заметка
Вы не ограничены в одном типе ВМ, предназначенных для нагрузки. Для создания дополнительного пула виртуальных машин используйте кнопку

| Имя параметра | Описание |
|---|---|
| SUBCLUSTER_WORKERPOOL_NAME | Имя пула виртуальных машин |
| WORKER_REPLICAS | Число узлов в workerpool. Сумма узлов во всех workerpool должна быть >=3 |
| Roles | Для большинства инсталляций используйте роль bootsman-worker. |
| MHC_MAX_UNHEALTY | Пороговое значение для MachineHealthCheck, при превышении которого не будет выполняться исправления. Для узлов с ролью master, значение по-умолчанию 100%. Для узлов с ролью worker, значение по-умолчанию 40% |
| MHC_TIMEOUT | Время, которое дается узлу на самостоятельное восстановление, прежде чем вмешается MachineHealthCheck. По-умолчанию 10m |
| VK_WORKER_IMAGE_ID | ID образа операционной системы. Подготовьте ОС в соответствии с инструкцией или используйте уже подготовленные образа |
| VK_WORKER_FLAVOR | Шаблон конфигурации облака VK. |
| VK_WORKER_DISK_TYPE | Тип дисков. Подробнее о типах дисков |
| VK_WORKER_DISK_SIZE | Объём дискового пространства. Измеряется в GiB. |
| VK_WORKER_ZONE | Зона доступности VK Cloud. Возможно задать более 1 зоны. |
Установка с помощью yaml-манифестов
Если вам удобнее способ применения yaml-манифестов, то ниже есть примеры. Заполните их в соответствии с описанием из главы, представленной ранее.
Заметка
Манифест secret_private_registry.yaml требуется только для установки из вашего приватного репозитория, в случае установки из репозитория Bootsman - пропустите.
kubectl apply -f secret_private_registry.yaml
kubectl apply -f Cluster.yaml
kubectl apply -f Workerpool.yaml
- Имя secret для авторизации в приватный репозиторий образов
- Namespace, в котором размещен secret для авторизации в приватный репозиторий образов
- Доменное имя вашего репозитория образов
- Имя пользователя в репозитории образов.
Если установка будет производится online блок registry можно удалить
- Пароль для пользователя в репозитории образов.
Если установка будет производится online блок registry можно удалить
apiVersion: provisioning.bootsman.tech/v1alpha1
kind: Cluster
metadata:
name: SUBCLUSTER_NAME (1)
namespace: SUBCLUSTER_NAMESPACE (2)
spec:
clusterType: capi
capiConfig:
kubernetesVersion: SUBCLUSTER_KUBERNETES_VERSION (3)
# Раскомментируйте блок для установки из вашего регистри
# registry:
# credentialsSecret:
# hostKey: host
# name: PRIVATE_REGISTRY_SECRET_NAME (5)
# namespace: PRIVATE_REGISTRY_SECRET_NAMESPACE (6)
# passwordKey: password
# usernameKey: username
# url: "PRIVATE_REGISTRY_URL (4)
controlPlane:
replicas: KCP_REPLICAS (7)
endpoint:
port: KUBE_API_PORT (8)
infrastructure:
sshAuthorizedKeys: (9)
- ssh-ed25519 AAAAC3NzaC1lZKKtLOCNv2g bootsman@stsoft.ru
provider: vk
vkProviderConfig:
projectId: VK_PROJECT_ID (10)
regionName: VK_REGION_NAME (11)
authConfig:
credentials:
password: VK_PASSWORD (12)
username: VK_USERNAME (13)
identityEndpoint: VK_ENDPOINT (14)
userDomainName: VK_USER_DOMAN_NAME (15)
privacy: VK_PRIVACY (16)
network:
externalNetworkName: VK_EXTERNAL_NETWORK_NAME (17)
name: VK_NETWORK_NAME (18)
useExisting: VK_NETWORK_EXIST (19)
subNetwork:
name: VK_SUBNETWORK_NAME (20)
# Раскомментируйте блок для использования существующей подсети
# useExisting: true (21)
# Раскомментируйте блок для создания новой подсети
# useExisting: false (22)
# cidr: VK_SUBNETWORK_CIDR} (23)
router:
name: {++VK_ROUTER_NAMEczjqqkd:149 (24)
useExisting: czjqqkd:150VK_ROUTER_EXISTczjqqkd:151 (25)
template:
imageId: czjqqkd:152VK_CONTROLPLANE_IMAGE_IDczjqqkd:153 (26)
availabilityZones:
- czjqqkd:154VK_CONTROLPLANE_ZONEczjqqkd:155 (27)
flavorRef: czjqqkd:156VK_CONTROLPLANE_FLAVORczjqqkd:157 (28)
volumeSize: czjqqkd:158VK_CONTROLPLANE_DISK_SIZEczjqqkd:159 (29)
volumeType: czjqqkd:160VK_CONTROLPLANE_DISK_TYPEczjqqkd:161 (30)
network:
podsCidrBlocks:
- czjqqkd:162SUBCLUSTER_POD_CIDRczjqqkd:163 (31)
servicesCidrBlocks:
- czjqqkd:164SUBCLUSTER_SERVICE_CIDRczjqqkd:165 (32)
kubeletExtraArgsFlags:
eviction-hard: ''
eviction-max-pod-grace-period: ''
eviction-minimum-reclaim: ''
kube-reserved: ''
max-pods: ''
seccomp-default: ''
system-reserved: ''
- Имя подчиненного кластера.
Должен быть уникальным в пределах namespace.
- Namespace управляющего кластера, который будет содержать объекты подчинённого кластера
- Версия Kubernetes. Поддерживаемые версии
- URL вашего репозитория образов.
Если установка будет производится online блок registry можно удалить
- Имя secret для авторизации в приватный репозиторий образов
- Namespace, в котором размещен secret для авторизации в приватный репозиторий образов
- Количество узлов с ролью master.
Может принимать значения 3 или 5
- Порт kube-api. По-умолчанию 6443
- Список ssh-ключей, которые будут добавлены на узлы
- ID проекта в облаке VK.
Можно узнать в "Настройках проекта" в разделе "Terraform" параметр "Project ID / tenant_id"
- Служебный параметр для работы с API.
Можно узнать в "Настройках проекта" в разделе "Доступ по API" параметр "Region Name
- Пароль пользователя для авторизации в VK Cloud
- Имя пользователя для авторизации в VK Cloud
- URL для API доступа к вашему проекту.
Можно узнать в "Настройках проекта" в разделе "Доступ по API" параметр "Auth URL"
- Технический параметр. Всегда будет "users".
Можно узнать в "Настройках проекта" в разделе "Доступ по API" параметр "Auth URL"
- Выбор режима взаимодействия с кластером Поддерживаемые значения Public, PrivateMachines, Private. Подробнее
- Технический параметр. Всегда будет "ext-net"
- Имя сети VK CLoud. Несовместим с VK_NETWORK_ID
- true - использовать существующую сеть VK Cloud, false - создать новую
- Имя подсети VK CLoud. Несовместим с VK_SUBNETWORK_ID
- true в случае использования существующего ресурса, false для создания нового
- true в случае использования существующего ресурса, false для создания нового
- Адресное пространство для новой подсети VK CLoud. Несовместим с существующей подсетью
- Имя маршрутизатора VK CLoud. Несовместим с VK_ROUTER_ID
- true - использовать существующий роутер, false - создать новую
- ID образа операционной системы.
Подготовьте ОС в соответствии с инструкцией или используйте уже подготовленные образа
- Зона доступности VK Cloud. Возможно задать более 1 зоны.
- Шаблон конфигурации облака VK.
- Объём дискового пространства.
Измеряется в GiB.
- Тип дисков.
Подробнее о типах дисков
- Блок адресов для Pods.
Должен не пересекаться с другими блоками внутри одного Kubernetes кластера и реальными сетями вашей инфраструктуры.
Допустимый размер блока /[1-20]
Пример:
podsCidrBlocks: ["172.20.0.0/16"] - Блок адресов для Service.
Должен не пересекаться с другими блоками внутри одного Kubernetes кластера и реальными сетями вашей инфраструктуры.
Допустимый размер блока /[1-20]
Пример:
servicesCidrBlocks: ["172.21.0.0/16"]
apiVersion: provisioning.bootsman.tech/v1alpha1
kind: WorkerPool
metadata:
name: SUBCLUSTER_WORKERPOOL_NAME (1)
namespace: SUBCLUSTER_NAMESPACE (2)
spec:
clusterName: SUBCLUSTER_NAME (3)
kubernetesVersion: SUBCLUSTER_KUBERNETES_VERSION (4)
replicas: WORKER_REPLICAS (5)
infrastructure:
provider: vk
vkProviderConfig:
imageId: VK_WORKER_IMAGE_ID (6)
availabilityZones:
- VK_WORKER_ZONE (7)
flavorRef: VK_WORKER_FLAVOR (8)
volumeSize: VK_WORKER_DISK_SIZE (9)
volumeType: VK_WORKER_DISK_TYPE (10)
kubeletExtraArgsFlags:
eviction-hard: ''
eviction-max-pod-grace-period: ''
eviction-minimum-reclaim: ''
kube-reserved: ''
max-pods: ''
seccomp-default: ''
system-reserved: ''
roles:
- name: bootsman-worker
Должен быть уникальным в пределах namespace. 4. Версия Kubernetes. Поддерживаемые версии 5. Число узлов в workerpool. Сумма узлов во всех workerpool должна быть >=3 6. ID образа операционной системы.
Подготовьте ОС в соответствии с инструкцией или используйте уже подготовленные образа 7. Зона доступности VK Cloud. Возможно задать более 1 зоны.
О зонах доступности 8. Шаблон конфигурации облака VK.
О Шаблонах конфигурации 9. Объём дискового пространства.
Измеряется в GiB.
Требования к инфраструктуре 10. Тип дисков.
Подробнее о типах дисков

























