Кластеры K8s в облаке на базе VMware

    Команда Simple-Server
    03.06.2026
    8 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Кратко о задаче

    Продукт CSE – дополнение платформы VMware vCloud Director (VCD), расширяющее систему функционалом для взаимодействия с кластерами k8s (Kubernetes) – от создания до регулирования жизненного цикла ПО. Его инсталляция позволяет применять комплексный подход, объединить в одной инфраструктуре VMware работу с Legacy и контейнизированными приложениями с сохранением однородности, системного подхода к управлению.

    1. Клиент CSE обеспечивает развертывание кластеров, добавляет рабочие узлы, настраивает хранилища NFS.
    2. Облако на базе vCloud Director предоставляет вычислительные ресурсы с высоким уровнем безопасности и мультитенантности (изолированности пользователей).
    3. CSE-сервер представляет собой инструмент для настройки файла конфигурации комплекса, шаблонов виртуальных машин.

    Создание контейнеров k8s в VMware и управлением ими относительно сложно, например, если их сравнивать с тем же Docker Swarm, еще одним инструментом кластеризации удаленных хостов. Еще Kubernetes (k8s) часто сравнивают с vSphere. Но и в сравнении с ней рассматриваемая платформа обладает более широким функционалом в управлении контейнеризированной IT-инфраструктурой. Это компенсирует недостатки сложной архитектуры и высокой стоимости продукта.

    Первое, на чем акцентирует внимание разработчик, это возможность сэкономить на использовании уже внедренной платформы VMware vCloud Director. Все ранее установленные приложения будут продолжать функционировать в прежнем режиме (фактически незаметно для конечного клиента), заодно появится возможность работать с Container VMware. Отказоустойчивость системы остается высокой независимо от однородности трафика, динамики нагрузки на платформу.

    Преимущества внедрения программного дополнения:

    1. Появляется инструмент управления кластерами, пулами узлов, другими ресурсами.
    2. Заметно сокращается общее время выхода на рынок любых новых разработок.
    3. Повышается доступность веб-ресурсов, включая облачные программы.
    4. Нагрузка на сервер распределяется автоматически.
    5. Растет надежность, производительность процессов CI/CD.

    Количество контейнеров неограниченно, лишь бы хватило мощности физического сервера (памяти, процессора и иных ресурсов). Благодаря такому свойству появляется возможность параллельной разработки разных проектов, которые изначально изолированы друг от друга. Также отсутствуют ограничения и по устанавливаемым операционным системам, применяемым языкам. При работе на международном рынке это удобно даже при наличии всего одного физического сервера.

    Инсталляция расширения CSE в vcd-cli

    Решение vcd-cli (CLI-интерфейс) представляет собой инструмент управления инфраструктурой из командной строки. По умолчанию в нем отсутствует поддержка работы с CSE. Чтобы включить ее, понадобится инсталлировать дополнение container-service-extension. Выполняется это командой:

    python3 -m pip install container-service-extension

    По завершении процедуры расширение вносят в файл конфигурации vcd-cli, расположенный по пути ~/.vcd-cli/profiles.yam. Его нужно открыть обычным текстовым редактором и найти строчку active с нижеуказанным значением:

    extensions: - container_service_extension.client.cse

    После сохранения изменений в конфигурационном файле выполняется вход:

    vcd login <хост> <название организации> <логин>

    Теперь нужно убедиться, что дополнение действительно установлено и активно взаимодействует с хостом:

    vcd cse version CSE, Container Service Extension for VMware vCloud Director, version 3.0.1 vcd cse system info property     value -----------  ------------------------------------------------------ description  Container Service Extension for VMware vCloud Director product      CSE version      2.6.1

    Теперь рассмотрим активацию кластера Kubernetes внутри VMware. Интеграция с платформой vCloud Director позволяет управлять процессом из одной точки в уже привычном интерфейсе. Ресурсы дата-центра обычно объединены в общий пул, и развертывание осуществляется через шаблоны VM с предустановленным и преднастроенным k8s. Подробности рекомендуется уточнять у службы технической поддержки Simple-Server.

    Ручное создание кластера возможно при помощи команды:

    vcd cse cluster create название-кластера \ --network название-сети \ --ssh-key ~/.ssh/id_rsa.pub \ --nodes количество-узлов \ --template имя-шаблона

    Наименование кластера, сетевого узла являются обязательными. Остальные допускается упустить, тогда будут применены значения по умолчанию. Например, в шаблоне под названием Ubuntu-16.04_k8-1.18_weave-2.6.5 заложено создание 3 узлов. Весь перечень активных шаблонов можно просмотреть по команде:

    Важно учитывать, что выбранная сеть должна иметь тип Routed и быть подключенной к интернету. Если хотя бы одно из этих условий не соблюдено, процесс инициализации кластера подзависнет уже при генерации мастер-узла. Допускается использовать «серую» сеть с применением технологии NAT или Direct Connect. Результат создания кластера будет виден в веб-интерфейсе платформы vCloud Director, в разделе vApps.

    После мониторинга статуса остается последний шаг. Нужно создать конфигурационный файл для Kubernetes. Его генерируют командой:

    vcd cse cluster config название-кластера > config

    После создания файл следует перенести в подходящее место командой:

    mkdir ~/.kube/config cp config ./.kube/config

    Кластер полностью готов к использованию – от настройки пользовательских параметров до разворачивания виртуальных машин, приложений и т.д. Правда, нужно учитывать, что фактически эмуляция контейнеризации имеет некоторые ограничения.

    Так, расширение CSE не поддерживает тип сервиса LoadBalancer. Поэтому манифесты k8s, которые используют его (плюс Ingress), будут работать некорректно. Решения этого недостатка существуют, рассмотрим два наиболее популярных – MetalLB и Project Contour.

    Вариант с применением MetalLB в сочетании с k8s представляет собой балансировщик, который подменяет облачные протоколы маршрутизации LB стандартными. Пример использования ниже.

    1. Создадим пространство имен и добавим MetalLB через манифесты:

    2. Следующим этапом настроим безопасность соединения узлов. Без этого передаваемые поды уйдут в статус CreateContainerConfigError. И в логи будут попадать сообщения об ошибках – secret memberlist not found:

    kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"

    3. Рекомендуется проверить текущий статус утилиты. Если настройка прошла корректно, то контроллер и спикер будут отображаться как running:

    kubectl get pod --namespace=metallb-system  NAME                          READY   STATUS    RESTARTS   AGE controller-57f648cb96-2lzm4   1/1     Running   0          5h52m speaker-ccstt                 1/1     Running   0          5h52m speaker-kbkps                 1/1     Running   0          5h52m speaker-sqfqz                 1/1     Running   0          5h52m

    4. Остается вручную создать конфигурационный файл:

    apiVersion: v1  kind: ConfigMap  metadata:  namespace: metallb-system  name: config  data:  config: |  address-pools:  - name: default  protocol: layer2  addresses:  - X.X.X.101-X.X.X.102

    Значение параметра addresses необходимо заполнять теми адресами, которые остаются свободными и на которые возлагается нагрузка по балансировке. Для этого применяем файл конфигурации:

    kubectl apply -f metallb-config.yaml

    Процедура настройки LoadBalancer для Kubernetes при помощи MetalLB завершена, теперь же очередь за Ingress. Ее поддержку проще реализовать другим инструментом.

    Создадим манифест через Project Contour. Выполняется это командой:

    kubectl apply -f https://projectcontour.io/quickstart/contour.yaml

    В результате ее выполнения будет автоматически развернут прокси-сервер Envoy, задачей которого станет прослушивание стандартных портов 80 и 443.

    Гибридный подход к реализации различных задач в облачных технологиях объясним, ведь одним физическим сервером часто пользуется большое количество клиентов. И каждый из них видит свою, замкнутую относительно других, среду. Применение CSE расширяет эти возможности за счет внедрения контейнеризации системы.


    Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация или чистый VPS без панели?

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны