vSphere
Внимание
Требуется vSphere версии 6.7 u3 или выше
Требования к запуску нового подчинённого кластера
Заметка
Для работы кластера Bootsman c внешним ETCD потребуется дополнительная подготовка. Подробнее
Перед началом установки подчинённого кластера следует удовлетворить следующие требования:
- Успешная установка управляющего кластера Bootsman
- DNS-имя управляющего кластера должно быть в DNS-сервере и разрешается для будущего подчинённого кластера
- Доступ подчинённого кластера к управляющему
- Сумма символов будущего имени кластера и имени Namespace не должно превышать 30 символов
- В случае наличия в вашем гипервизоре более одного Cluster в целевом Datacenter, требуется создать отдельного пользователя по инструкции
Установка
Установку можно провести двумя способами:
- Использовать установщик 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
Заметка
В случае использования уже существующего секрета на управляющем кластере, следует использовать настройку "Credential settings" "Use existing" Формы помогут найти секрет и указать имена полей, которые соотвествуют пользователю и паролю
Заметка
Advanced mode поможет вам задать специфические имена ключей в секрете. По умолчанию, username - пользователь, password - пароль
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${VSPHERE_ADDRESS} | IP-адрес или DNS-имя vSphere | |
| ${VSPHERE_SECRET_NAMESPACE} | Имя namespace секрета | |
| ${VSPHERE_SECRET_NAME} | Имя секрета с авторизацией в vSphere | |
| ${VSPHERE_USERNAME} | Пользователь vSphere | |
| ${VSPHERE_PASSWORD} | Пароль пользователя vSphere | |
| ${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} | Число реплик мастер-нод | |
| ${KCP_IP} | Статический IP адрес для мастер-нод | |
| ${KUBE_API_PORT} | Порт для kube-api | По-умолчанию 6443 |
Шаблон виртуальных машин
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${VSPHERE_KCP_TEMPLATE} | Имя образа ВМ в vSphere | |
| ${VSPHERE_NETWORK} | Имя сети vSphere | Должна быть создана до запуска |
| ${VSPHERE_FOLDER} | Имя директории в vSphere | Должна быть создана до запуска |
| ${VSPHERE_DATACENTER} | Имя датацентра | |
| ${VSPHERE_DATASTORE} | Имя дискового хранилища | |
| ${VSPHERE_CLUSTER_NAME} | Имя кластера | |
| ${VSPHERE_KCP_CPU} | Число vCPU, выделенных для каждой мастер-ноды | |
| ${VSPHERE_KCP_MEMORY} | Объём оперативной памяти для каждой мастер-ноды | Измеряется в MiB |
| ${VSPHERE_KCP_DISK} | Объём дискового пространства для каждой мастер-ноды | Измеряется в GiB |
WorkerPool
Шаблон виртуальных машин
Заметка
Вы не ограничены в одном типе ВМ, предназначенных для нагрузки. Для создания дополнительного пула виртуальных машин используйте кнопку
Заметка
для установки GPU operator включите параметр GPU Подробнее
| Имя параметра | Описание | Комментарий |
|---|---|---|
| ${SUBCLUSTER_WORKERPOOL_NAME} | Имя пул виртуальных машин | |
| ${WORKER_REPLICAS} | Число виртуальных машин | |
| ${VSPHERE_WORKER_TEMPLATE} | Имя образа ВМ в vSphere | |
| ${VSPHERE_NETWORK} | Имя сети vSphere | Должна быть создана до запуска |
| ${VSPHERE_FOLDER} | Имя директории в vSphere | Должна быть создана до запуска |
| ${VSPHERE_DATACENTER} | Имя датацентра | |
| ${VSPHERE_DATASTORE} | Имя дискового хранилища | |
| ${VSPHERE_CLUSTER_NAME} | Имя кластера | |
| ${VSPHERE_WORKER_CPU} | Число vCPU, выделенных для каждой мастер-ноды | |
| ${VSPHERE_WORKER_MEMORY} | Объём оперативной памяти для каждой мастер-ноды | Измеряется в MiB |
| ${VSPHERE_WORKER_DISK} | Объём дискового пространства для каждой мастер-ноды | Измеряется в GiB |
Установка с помощью 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
capiConfig:
controlPlane:
replicas: ${KCP_REPLICAS}
endpoint:
host: ${KCP_IP}
port: ${KUBE_API_PORT}
infrastructure:
provider: vsphere
sshAuthorizedKeys:
- >-
ssh-ed25519 CCULn/YglEAzQcMqC7xIViZEl0gBU49o73wKaf1M0x0K0bgyZpG6DJDXw24cjbI4U4yaZI example
vsphereProviderConfig:
secret:
user: ${VSPHERE_USERNAME}
password: ${VSPHERE_PASSWORD}
template:
datacenter: ${VSPHERE_DATACENTER}
cluster: ${VSPHERE_CLUSTER_NAME}
datastore: ${VSPHERE_DATASTORE}
folder: ${VSPHERE_FODLER}
insecureFlag: ${VSPHERE_INSECURE}
networkName: ${VSPHERE_NETWORK}
resource:
diskGiB: ${VSPHERE_KCP_DISK}
memoryMiB: ${VSPHERE_KCP_MEMORY}
numCPUs: ${VSPHERE_KCP_CPU}
serverAddress: ${VSPHERE_ADDRESS}
template: ${VSPHERE_KCP_TEMPLATE}
kubernetesVersion: ${SUBCLUSTER_KUBERNETES_VERSION}
network:
podsCidrBlocks:
- ${SUBCLUSTER_POD_CIDR}
servicesCidrBlocks:
- ${SUBCLUSTER_SERVICE_CIDR}
registry:
url: ${REGISTRY_URL}
credentials:
username: ${REGISTRY_USERNAME}
password: ${REGISTRY_PASSWORD}
clusterType: capi
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: vsphere
vsphereConfig:
insecureFlag: ${VSPHERE_INSECURE}
resource:
diskGiB: ${VSPHERE_WORKER_DISK}
memoryMiB: ${VSPHERE_WORKER_MEMORY}
numCPUs: ${VSPHERE_WORKER_CPU}
datacenter: ${VSPHERE_DATACENTER}
cluster: ${VSPHERE_CLUSTER_NAME}
datastore: ${VSPHERE_DATASTORE}
folder: ${VSPHERE_FODLER}
networkName: ${VSPHERE_NETWORK}
serverAddress: ${VSPHERE_ADDRESS}
template: ${VSPHERE_WORKER_TEMPLATE}
kubeletExtraArgs:
kubeReserved: ''
systemReserved: ''
evictionHard: ''
evictionMinimumReclaim: ''
evictionMaxPodGracePeriod: ''
maxPods: ''









