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

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

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

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

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

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

Пример 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

Операционная система. В качестве ОС используется дистрибутив 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

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

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

Управление жизненным циклом 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 в панели управления

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.

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