Yandex Cloud
Требования к запуску нового подчинённого кластера
Заметка
Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее
Перед началом установки подчинённого кластера следует удовлетворить следующие требования:
- Успешная установка управляющего кластера 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} | Подсеть для сервисов подчинённого кластера | Не пересекается с управляющим или другим подчинённым кластером |
Provider Configuration
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${YANDEX_ZONE} | Зона доступности облака Yandex | О Зонах Yandex |
| ${YANDEX_PRIVACY} | Выбор режима взаимодействия с кластером | Поддерживаемые значения Public, PrivateMachines, Private. Подробнее |
| ${YANDEX_FOLDERID} | Директория в облаке Yandex | Должна быть создана до запуска. Как узнать мой FodlerID? |
| ${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
Заметка
Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${KCP_REPLICAS} | Число реплик мастер-нод | |
| ${KUBE_API_PORT} | Порт для kube-api | По умолчанию 6443 |
Авторизация
Заметка
Используйте существующий секрет, с указанием namespace, имени и ключа для поиска
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${YANDEX_AUTH_SECRET_NAMESPACE} | Namespace, в котором создан секрет | |
| ${YANDEX_AUTH_SECRET_NAME} | Имя секрета с ключом авторизации | |
| ${YANDEX_AUTH_SECRET_KEY} | Имя ключа в секрете авторизации | |
| ${YANDEX_AUTH_SECRET_VALUE} | Ключ авторизации |
Настройка Сети
Bootsman позволяет использовать как существующие сети и подсети Yandex Cloud, так и вновь созданные
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${YANDEX_NETWORK_NAME} | Имя сети. Исключает установку ${YANDEX_NETWORK_ID} | |
| ${YANDEX_NETWORK_ID} | ID сети. Исключает установку ${YANDEX_NETWORK_NAME} | |
| ${YANDEX_SUBNETWORK_NAME} | Имя подсети. Исключает установку ${YANDEX_SUBNETWORK_ID} | |
| ${YANDEX_SUBNETWORK_ID} | ID подсети. Исключает установку ${YANDEX_SUBNETWORK_NAME} | |
| ${YANDEX_SUBNETWORK_CIDR} | адресное пространство для новой подсети |
Шаблон виртуальных машин
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${YANDEX_KCP_IMAGE_ID} | ID образа операционной системы | Подготовьте ОС в соответсвии с инструкцией или используйте уже подготовленные образа |
| ${YANDEX_KCP_PLATFORM_ID} | Тип процессора | Типы Процессоров |
| ${YANDEX_KCP_CORES} | Число CPU | |
| ${YANDEX_KCP_MEMORY} | Объём оперативной памяти | Измеряется в GiB |
| ${YANDEX_KCP_DISK_TYPE} | Тип дисков | Типы дисков |
| ${YANDEX_KCP_DISK_SIZE} | Объём дискового пространства | Измеряется в GiB |
WorkerPool
Шаблон виртуальных машин
Заметка
Вы не ограничены в одном типе ВМ, предназначенных для нагрузки. Для создания дополнительного пула виртуальных машин используйте кнопку
Заметка
для установки GPU operator включите параметр GPU Подробнее
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${SUBCLUSTER_WORKERPOOL_NAME} | Имя пул виртуальных машин | |
| ${WORKER_REPLICAS} | Число виртуальных машин | |
| ${YANDEX_WORKER_PLATFORM_ID} | Тип процессора | Типы Процессоров |
| ${YANDEX_WORKER_IMAGE_ID} | ID образа операционной системы | Подготовьте ОС в соответсвии с инструкцией или используйте уже подготовленные образа |
| ${YANDEX_WORKER_CORES} | Число CPU | |
| ${YANDEX_WORKER_MEMORY} | Объём оперативной памяти | Измеряется в GiB |
| ${YANDEX_WORKER_DISK_TYPE} | Тип дисков | Типы дисков |
| ${YANDEX_WORKER_DISK_SIZE} | Объём дискового пространства | Измеряется в GiB |
| ${YANDEX_WORKER_RESOURCE_CONFIGURATION} | Фиксированные конфигурации для GPU машин |
Установка с помощью 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:
bootsmanVersion: latest
clusterType: capi
capiConfig:
kubernetesVersion: ${SUBCLUSTER_KUBERNETES_VERSION}
# Раскомментируйте здесь для установки из вашего регистри
# registry:
# url: ${PRIVATE_REGISTRY_URL}
# credentials:
# username: ${PRIVATE_REGISTRY_USERNAME}
# password: ${PRIVATE_REGISTRY_PASSWORD}
controlPlane:
replicas: ${KCP_REPLICAS}
endpoint:
port: ${KUBE_API_PORT}
infrastructure:
sshAuthorizedKeys:
- >-
ssh-ed25519 CCULn/YglEAzQcMqC7xIViZEl0gBU49o73wKaf1M0x0K0bgyZpG6DJDXw24cjbI4U4yaZI example
provider: yandex
yandexProviderConfig:
folderId: ${YANDEX_FOLDERID}
zone: ${YANDEX_ZONE}
network:
name: ${YANDEX_NETWORK_NAME}
useExisting: false
# Раскомментируйте здесь для использования существующей подсети
# subNetwork:
# name: ${YANDEX_SUBNETWORK_NAME}
# useExisting: true
# Раскомментируйте здесь для создания новой подсети
# subNetwork:
# name: ${YANDEX_SUBNETWORK_NAME}
# cidr:
# - ${YANDEX_SUBNETWORK_CIDR}
# useExisting: false
authConfig:
secretName: ${YANDEX_AUTH_SECRET}
field: ${YANDEX_AUTH_SECRET_KEY}
apiKeySecretRef:
name: ${YANDEX_AUTH_SECRET}
namespace: ${YANDEX_AUTH_SECRET_NAMESPACE}
templateOptions:
platformId: ${YANDEX_KCP_PLATFORM_ID}
cores: ${YANDEX_KCP_CORES}
memory: ${YANDEX_KCP_MEMORY}
diskType: ${YANDEX_KCP_DISK_TYPE}
diskSize: ${YANDEX_KCP_DISK_SIZE}
imageId: ${YANDEX_KCP_IMAGE_ID}
privacy: ${YANDEX_PRIVACY}
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: yandex
yandexConfig:
platformId: ${YANDEX_WORKER_PLATFORM_ID}
cores: ${YANDEX_WORKER_CORES}
memory: ${YANDEX_WORKER_MEMORY}
diskType: ${YANDEX_WORKER_DISK_TYPE}
diskSize: ${YANDEX_WORKER_DISK_SIZE}
imageId: ${YANDEX_WORKER_IMAGE_ID}
# Расскоментируйте для использования GPU. Внимание значения cores и memory нужно задать в соотвествии с документацией Yandex Cloud
# gpus: ''
kubeletExtraArgs:
kubeReserved: ''
systemReserved: ''
evictionHard: ''
evictionMinimumReclaim: ''
evictionMaxPodGracePeriod: ''
maxPods: ''













