Немецкая компания SUSE известна в Open Source-сообществе своими дистрибутивами Linux. Но этим ее деятельность не ограничивается. В конце прошлого года SUSE представила новый проект с открытым кодом — гиперконвергентное решение Harvester. Как говорит компания, Harvester — это альтернатива существующим гиперконвергентным платформам enterprise-уровня типа VMware vSAN и Nutanix HCI, адаптированная к cloud native-среде, к тому же полностью бесплатная.

В статье сделаем небольшой обзор Harvester: посмотрим на компоненты, возможности, сильные и слабые стороны.

Статистика проекта на GitHub
Статистика проекта на GitHub

Но прежде чем поближе познакомиться с Harvester, вспомним, что такое гиперконвергенция.

Гиперконвергенция

Hyper-converged infrastructure (HCI), или гиперконвергентная инфраструктура, — программно-определяемая ИТ-инфраструктура, которая объединяет функции вычисления, хранения данных, виртуализации и сети в единую систему. HCI строится только на базе серверов и не требует отдельных систем хранения — в отличие от просто конвергентных платформ.

Пример HCI — платформа Nutanix (источник: nutanix.com)
Пример HCI — платформа Nutanix (источник: nutanix.com)

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

Лидеры рынка гиперконвергенции, согласно последнему отчету Gartner, — Nutanix HCI и VMware vSAN. По данным Market Study Report, LLC., к 2027 году капитализация отрасли должна достигнуть 44,2 млрд USD.

Зачем SUSE своя HCI-платформа

По словам Sheng Yang, ведущего разработчика Harvester, в Open Source-сообществе назрела потребность в HCI-решении, с помощью которого можно было бы управлять контейнерами и виртуальными машинами (VM) внутри Kubernetes. Хотя Kubernetes — это уже достаточно зрелая технология и стандарт для оркестрации контейнеров, крупные вендоры HCI пока ее игнорируют. Основная причина, по мнению Sheng Yang: рынок, связанный с Kubernetes, и рынок HCI, на котором доминируют VMware и Nutanix, — разные, в том числе по уровню капитализации. Крупные вендоры по-прежнему сосредоточены на пользователях, которые предпочитают аппаратную виртуализацию. SUSE решили*, что разработка HCI-платформы корпоративного уровня на базе K8s — хорошая возможность изменить статус-кво.

* Примечание

Фактический разработчик Harvester — компания Rancher Labs, которая в 2020 году вошла в состав SUSE. Основой для Harvester стала другая разработка Rancher Labs — Kubernetes-платформа Rancher.

Harvester — свободный продукт, и его можно использовать бесплатно. SUSE предлагает платные консультации и техническую поддержку.

Управляющий слой платформы предназначен для установки на «голом железе» (bare metal-серверах). При этом в ней могут быть доступны не только ресурсы on-prem-инсталляций: Harvester можно использовать для работы на гибридной инфраструктуре и в периферийных вычислительных сетях (edge computing).

Главные отличия Harvester от традиционных HCI-решений, по мнению SUSE:

  • это 100%-й Open Source;

  • платформа построена на базе Kubernetes, KubeVirt, Longhorn и других cloud native-решений и ориентирована на контейнеризированную и микросервисную инфраструктуру;

  • позволяет управлять традиционными (VM) и контейнерными нагрузками в одной панели;

  • не привязана к конкретному оборудованию — в отличие, например, от решений Dell и NetApp.

Архитектура Harvester

Harvester позиционируется как полноценная HCI-платформа, которая предоставляет единый интерфейс управления вычислительными ресурсами, виртуализацией, хранилищем и сетью. 

Архитектура Harvester
Архитектура Harvester

Операционная система. В качестве ОС используется дистрибутив openSUSE Leap 15.3, доработанный для задач Harvester с помощью набора утилит containerOS (cOS). cOS превращает исходный дистрибутив в систему, которая ориентирована на запуск контейнеров и требует минимального обслуживания для этих целей.

Kubernetes. Для управления K8s-кластерами предоставляется дистрибутив Rancher Kubernetes Engine 2 (RKE2), он же — RKE Government. RKE2 подходит в том числе компаниям, у которых повышенные требования к безопасности.

Виртуализация. За VM-слой отвечает KubeVirt — аддон, который реализует привычные функции виртуализации в Kubernetes посредством гипервизора KVM. С помощью KubeVirt можно запускать виртуализированные нагрузки наряду с контейнеризированными. Проект включили в песочницу CNCF в 2019 году, а сейчас он на следующей стадии — «инкубация».

Хранилище. Функцию storage area network (SAN) выполняет еще один инкубационный проект CNCF — Longhorn, высокодоступное распределенное блочное хранилище для Kubernetes (см. наш обзор Longhorn). Для хранения образов VM используется MinIO.

Сеть. Плагин Multus CNI обеспечивает работу VM в нескольких сетях и поддержку VLAN в K8s-кластере.

Веб-интерфейс Harvester
Веб-интерфейс Harvester

Функциональные возможности

Виртуализация

Управление жизненным циклом VM.
Мониторинг основных метрик VM — утилизация CPU, памяти, дисков, сети — со встроенным дашбордом Grafana.
Управление облачной инфраструктурой.
Поддержка SSH-ключей.
KVM-консоль для доступа к удаленному хосту (VNC) и последовательному порту.
Шаблоны VM.
Экспорт образов из существующих VM.
Terraform-провайдер.

Хранилище

Блочное хранилище Longhorn.
Встроенное хранилище образов VM.
Бэкапы и восстановление VM в/из S3.
«Горячее» подключение дисков.

Сеть

Виртуальные IP для кластера.
Мультисегментная сеть.
VLAN.
Пользовательские SSL-сертификаты.

Kubernetes (Rancher)

Создание Kubernetes-кластеров.
Управление виртуализацией через Rancher сразу для нескольких кластеров Harvester.
Мультитенантность с поддержкой RBAC.
Встроенный CSI-драйвер.

Фокус на Kubernetes

Для простоты Harvester можно считать Kubernetes-платформой, с помощью которой можно управлять не только K8s-кластерами, но и виртуальными машинами — через единую панель управления. Реализовано это благодаря интеграции RKE2 и KubeVirt.

Процесс создания VM в панели управления
Процесс создания VM в панели управления

Harvester использует API Kubernetes, что упрощает работу с платформой DevOps-командам, для которых K8s уже основной инструмент оркестрации контейнеров. API Kubernetes выступает в качестве унифицированного языка для автоматизации и контейнерных, и VM-нагрузок.

Что касается других составляющих HCI:

  • Хранение. Платформа предоставляет хранилище для Kubernetes-контейнеров через ​​внутренний инструмент Harvester Cloud Provider, который в свою очередь состоит из CSI-драйвера и cloud controller manager’a (CCM). CCM использует Longhorn для автоматической балансировки storage-ресурсов между узлами кластера. Longhorn также аккумулирует ресурсы локальных дисков или сетевых хранилищ, на основе которых создает блочные тома для VM.

  • Сеть. Используемый в Harvester CNI предоставляет интерфейс между сетевыми провайдерами и сетью VM внутри кластера. Реализация VLAN основана на CNI-плагине bridge. Для настройки сети на хосте, на котором развернут кластер, используется Harvester Network Controller («под капотом» у контроллера — тот же bridge CNI и Multus-CNI).

Администрировать Harvester можно и через веб-интерфейс (GUI), и через консоль, используя в том числе kubectl. При этом виртуальные машины для kubectl эквивалентны Pod’ам в Kubernetes:

Если пользователь не знаком с kubectl, он может работать только через GUI; по заверению разработчика, это полноценный инструмент для администрирования и отладки. Базовых знаний Kubernetes для освоения Harvester должно быть достаточно — при условии, конечно, что пользователь хорошо знаком с Linux и виртуализацией.

Для обслуживания сложной мультикластерной инфраструктуры предусмотрена интеграция Harvester с K8s-платформой Rancher (v2.6.1 и новее). Кластер Harvester в составе таких инсталляций можно администрировать через панель управления Rancher. В этом случае Harvester выступает в роли дополнительного cloud provider’а:

Кластеры могут быть развернуты как локально, так и в гибридной среде (например, часть — в собственном дата-центре, часть — в публичном облаке) и управляться как единая инфраструктура с помощью встроенных в Rancher инструментов аутентификации, контроля доступа и мониторинга.

Аналоги

Из более-менее близких по техническим возможностям решений можно отметить три:

  1. Proxmox Virtual Environment — платформа виртуализации с открытым кодом, которая предлагает единую среду управления виртуальными машинами на базе KVM и Linux-контейнерами (LXC). Поскольку платформа программно объединяет вычислительные ресурсы, хранилище и сеть в единую систему, ее можно использовать как основу для построения HCI

  2. Связка платформы виртуализации vSphere и Kubernetes-платформы Tanzu. Виртуальные машины запускаются вместе с контейнерами в общей среде Kubernetes через панель управления vSphere.

  3. Связка Kubernetes-платформы OpenShift и аддона Red Hat OpenShift Virtualization. Аддон добавляет новые объекты в кластер OpenShift с помощью custom resources для поддержки функций виртуализации. Доступны все основные возможности по работе с VM. За сетевой слой отвечает Multus-CNI (как и в Harvester), за хранение — OpenShift Container Storage, а для виртуализации используется тот же KubeVirt.

Резюме

Плюсы Harvester:

  • Это бесплатный Open Source-продукт.

  • Создан на базе Kubernetes и других популярных cloud native-решений.

  • Не привязан к оборудованию определенных вендоров и cloud-поставщиков, можно использовать типовые серверы.

  • Предлагает все основные функции для управления VM и контейнерами.

Минусы:

  • Платформа SUSE ориентирована только на bare metal-инсталляции. Не всем потенциальным пользователям Harvester это подходит.

  • Harvester — молодой продукт. По функциональности он еще не может полноценно конкурировать с платформами VMware, Nutanix и Red Hat. У проекта пока нет серьезных use cases (по крайней мере — известных публично), которые бы подтвердили его готовность к использованию в production.

Однако, как обещают SUSE, функциональность Harvester будет расширяться. Компания намерена активно формировать сообщество вокруг проекта и приглашает желающих поучаствовать в его развитии.

P.S.

Читайте также в нашем блоге:

Комментарии (6)


  1. Kylin
    12.05.2022 10:59
    +1

    по поводу "Платформа SUSE ориентирована только на bare metal-инсталляции. Не всем потенциальным пользователям Harvester это подходит." это не совсем так, еще когда самого harvester не было я делал для одного клиента PoC на базе тех же компонент что использует Harvester, а именно Rancher, RKE, Kubevirt, Longhorn, Minio, Canal CNI. для PoC использовался хостер который предоставляет vCloud Director API, то есть я при помощи тераформа нарезал виртуалки побольше, с 16 cores и 64GB RAM, и уже эти виртуалки в кубе нарезал на поменьше и неплохо все работало.


  1. ZloyKishechnik
    12.05.2022 12:38

    Еще раз, а можно tl;dr для непонятливых - Harvester - это как замена Proxmox, а-ля qemu/kvm, в котором можно сетапить виртуалки? Или это немного более комплесное решение, где еще есть центральный сторадж через Longhorn и так далее?

    Или все-таки это "максимально простая" альтернатива Proxmox`у?


    1. nikweter
      12.05.2022 13:07

      На первый взгляд, похоже на Rancher, к которому плагином прикрутили возможность запускать виртуалки.


      1. ZloyKishechnik
        12.05.2022 14:45

        а виртуалки запускаются как в ранчере поды, а-ля есть 10 воркер нод и запустятся на какой-то из?
        и сами виртуалки запускаются полноценно как qemu/kvm, т.е. с хостовой машины можно выполнить команду "virsh / qm list" и ребутнуть ее, например?


        1. creker
          13.05.2022 13:54

          Судя по коду, kubevirt работает через /dev/kvm Плюс вот это https://gist.github.com/zulhfreelancer/1ce85228499e69e1c707855bbbda1092

          $ kubectl get pods
          NAME                     READY   STATUS    RESTARTS   AGE
          virt-launcher-vm-4sd8h   1/1     Running   0          2d13h
          $ kubectl exec -it virt-launcher-vm-4sd8h -- bash
          bash-5.0# virsh list
          Id   Name         State
          1    default_vm   running

          Т.е. для хоста это обычные виртуалки. По сути, это прямо как Vsphere/proxmox кластер получается. Просто контрол плейном выступает кубер в связке с kubevirt.


    1. creker
      12.05.2022 15:17
      +2

      Это HCI, т.е. это комплексное решение для развертывания разных нагрузок - и виртуальных, и контейнерных. Это business-talk, так сказать. Технически, это просто обычный кубер с прикрученным kubevirt, уже выбранным за тебя распределенным хранилищем, CNI и прочими плюшками. По сути, все тоже самое можно собрать руками спокойно за исключением наверное только web-ui. Кубер это конструктор и каждый из него собирает свое.