Перейти к содержанию

vSphere

Внимание

Требуется vSphere версии 6.7 u3 или выше

Требования к запуску нового подчинённого кластера

Перед началом установки подчинённого кластера следует удовлетворить следующие требования:

  • Успешная установка управляющего кластера Bootsman
  • DNS-имя управляющего кластера должно быть в DNS-сервере и разрешается для будущего подчинённого кластера
  • Доступ подчинённого кластера к управляющему
  • Сумма символов будущего имени кластера и имени Namespace не должно превышать 30 символов
  • В случае наличия в вашем гипервизоре более одного Cluster в целевом Datacenter, требуется создать отдельного пользователя по инструкции

Установка

Установку можно провести двумя способами:

  • Использовать установщик Bootsman
  • Применить yaml-манифесты

Установка с помощью установщика Bootsman

Заметка

Во время заполнения формы вы можете в любой момент переключится в режим yaml

Для создания подчинённого кластера авторизуйтесь в управляющий кластер и нажмите кнопку Кнопка Создания Подчинённого Кластера

Вас перенаправит на страничку установщика для заполнения данных о будущем кластере.

Сначала укажите имя нового подчинённого кластера (1) и описание (2)

  1. Cluster Name
  2. Description

Cluster Name

Далее заполните поля в блоке "Kubernetes Options"

Kubernetes Options

Имя параметра Описание Комментарий
${SUBCLUSTER_KUBERNETES_VERSION} Версия Kubernetes
${SUBCLUSTER_NAMESPACE} Namespace управляющего кластера, который будет содержать объекты подчинённого кластера
${SUBCLUSTER_POD_CIDR} Подсеть для подов подчинённого кластера Не пересекается с управляющим или другим подчинённым кластером
${SUBCLUSTER_SERVICE_CIDR} Подсеть для сервисов подчинённого кластера Не пересекается с управляющим или другим подчинённым кластером

Далее заполните поля в блоке "Control Plane"

KCP Begin

Имя параметра Описание Комментарий
${KCP_REPLICAS} Число реплик мастер-нод
${KCP_IP} Статический IP адрес для мастер-нод
${KUBE_API_PORT} Порт для kube-api По-умолчанию 6443
${VSPHERE_USERNAME} Пользователь vSphere
${VSPHERE_PASSWORD} Пароль пользователя vSphere

Следующий блок содержит информацию об образе будущих виртуальных машин

KCP Template

Имя параметра Описание Комментарий
${VSPHERE_KCP_TEMPLATE} Имя образа ВМ в vSphere
${VSPHERE_ADDRESS} IP-адрес или DNS-имя vSphere
${VSPHERE_NETWORK} Имя сети vSphere Должна быть создана до запуска
${VSPHERE_FOLDER} Имя директории в vSphere Должна быть создана до запуска
${VSPHERE_DATACENTER} Имя датацентра
${VSPHERE_DATASTORE} Имя дискового хранилища

И завершающий блок настройки Control Plane - это выделяемые ресурсы

KCP Resouces

Имя параметра Описание Комментарий
${VSPHERE_KCP_CPU} Число vCPU, выделенных для каждой мастер-ноды
${VSPHERE_KCP_MEMORY} Объём оперативной памяти для каждой мастер-ноды Измеряется в MiB
${VSPHERE_KCP_DISK} Объём дискового пространства для каждой мастер-ноды Измеряется в GiB

Далее добавьте информацию о приватном репозитории

Private Registry

Имя параметра Описание Комментарий
${REGISTRY_DOMAIN_NAME} Доменное имя вашего регистри
${REGISTRY_USERNAME} Пользователь для вашего регистри Измеряется в MiB
${REGISTRY_PASSWORD} Пароль для вашего регистри Измеряется в GiB
${REGISTRY_URL} Полный путь до образов внутри вашего регистри Измеряется в GiB

Дальнейшая настройка касается создания пула worker-нод

Заметка

Вы не ограничены в одном типе ВМ, предназначенных для нагрузки. Для создания дополнительного пула виртуальных машин используйте кнопку

Add Worker Pool

Worker Template

Имя параметра Описание Комментарий
${SUBCLUSTER_WORKERPOOL_NAME} Имя пул виртуальных машин
${WORKER_REPLICAS} Число виртуальных машин
${VSPHERE_WORKER_TEMPLATE} Объём дискового пространства для каждой мастер-ноды Может быть идентичным с ${VSPHERE_KCP_TEMPLATE}
${VSPHERE_ADDRESS} IP-адрес или DNS-имя vSphere Должно быть идентичным с настройкой указанной в Control Plane
${VSPHERE_NETWORK} Имя сети vSphere Должна быть создана до запуска
${VSPHERE_FOLDER} Имя директории Должна быть создана до запуска
${VSPHERE_DATACENTER} Имя датацентра Должно быть идентичным с настройкой указанной в Control Plane
${VSPHERE_DATASTORE} Имя дискового хранилища

Ресурсы для пула виртуальных машин

Worker Resouces

Имя параметра Описание Комментарий
${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:
  addons:
    repoURL: ${REGISTRY_URL}
  airgap:
    repository: ${REGISTRY_URL}
  bootsmanVersion: latest
  capiConfig:
    controlPlane:
      endpoint:
        host: ${KCP_IP}
        port: ${KUBE_API_PORT}
      replicas: ${KCP_REPLICAS}
    infrastructure:
      provider: vsphere
      sshAuthorizedKeys:
        - >-
          ssh-ed25519 CCULn/YglEAzQcMqC7xIViZEl0gBU49o73wKaf1M0x0K0bgyZpG6DJDXw24cjbI4U4yaZI example
      vsphereProviderConfig:
        secret:
          password: ${VSPHERE_PASSWORD}
          user: ${VSPHERE_USERNAME}
        template:
          datacenter: ${VSPHERE_DATACENTER}
          datastore: ${VSPHERE_DATASTORE}
          folder: ${VSPHERE_FOLDER}
          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:
      credentials:
        password: ${REGISTRY_PASSWORD}
        username: ${REGISTRY_USERNAME}
      url: ${REGISTRY_DOMAIN_NAME}
  clusterType: capi
apiVersion: provisioning.bootsman.tech/v1alpha1
kind: WorkerPool
metadata:
  name: ${SUBCLUSTER_WORKERPOOL_NAME}
  namespace: ${SUBCLUSTER_NAMESPACE}
spec:
  clusterName: ${SUBCLUSTER_NAME}
  infrastructure:
    provider: vsphere
    vsphereConfig:
      datacenter: ${VSPHERE_DATACENTER}
      datastore: ${VSPHERE_DATASTORE}
      folder: ${VSPHERE_FOLDER}
      insecureFlag: ${VSPHERE_INSECURE}
      networkName: ${VSPHERE_NETWORK}
      resource:
        diskGiB: ${VSPHERE_WORKER_DISK}
        memoryMiB: ${VSPHERE_WORKER_MEMORY}
        numCPUs: ${VSPHERE_WORKER_CPU}
      serverAddress: ${VSPHERE_ADDRESS}
      template: ${VSPHERE_WORKER_TEMPLATE}
  kubernetesVersion: ${SUBCLUSTER_KUBERNETES_VERSION}
  replicas: ${WORKER_REPLICAS}