Blog
DevOps as a Service from Flant Dedicated 24x7x365 support Discover the benefits
19 May 2022
Oleg Zinovyev, technical writer

Overview of Harvester, a hyperconverged Open Source solution powered by Kubernetes

SUSE is widely recognized by the Open Source community — at least, for its Linux distributions. But of course, it creates a lot more than just that. It was late last year when SUSE introduced a new Open Source project called Harvester. The company marketed it as an alternative to existing enterprise-level hyperconverged platforms like VMware vSAN and Nutanix HCI. It is different thanks to being focused on cloud-native environments and completely free.

In this article, we will provide a brief overview of Harvester’s components, features, and advantages.

But before we take a closer look at Harvester, let’s first recap what hyperconvergence is.

Hyperconvergence

Hyper-converged infrastructure (HCI) is a software-defined IT infrastructure that integrates computing, storage, virtualization, and networking functionality into a single, unified system. Unlike converged platforms, HCI is purely server-based and does not require separate storage systems.

The Nutanix platform is a well-known example of HCI

Thanks to a dedicated hyperconverged platform, HCI can be managed as a single modular system using a single control panel. Meanwhile, physical servers can be located in different, geographically distributed data centers and even on different continents (being part of a virtual data center). HCI renders the IT infrastructure flexible and easily scalable.

According to the latest Gartner report, Nutanix HCI and VMware vSAN are the market leaders in the HCI software magic quadrant. Market Study Report, LLC., predicts that the industry’s capitalization will reach $44.2 billion by 2027.

Why SUSE created another HCI platform

According to Sheng Yang, lead Harvester developer, the Open Source community needs an HCI solution capable of managing containers and virtual machines (VMs) under Kubernetes. Major HCI vendors have ignored Kubernetes so far, despite that it is a relatively mature container orchestration technology. Sheng thinks the main reason is that the Kubernetes-related market is very different (including capitalization) from the HCI market, which is dominated by VMware and Nutanix. The major vendors are still centered on users who prefer hardware virtualization. SUSE decided that developing an enterprise-level HCI platform based on K8s* would be a good opportunity to change the status quo.

* Harvester’s original developer was Rancher Labs, which joined SUSE in 2020. Harvester is based on the Rancher Kubernetes platform by Rancher Labs.

The advantage of Harvester is that it is an Open Source product, and everyone can use it for free. On its part, SUSE offers paid consulting and technical support.

The Harvester control plane is designed to run on bare metal servers. However, it is not limited to on-premises resources: Harvester also supports hybrid infrastructure and edge computing.

Below are the main differences between Harvester and traditional HCI solutions, according to SUSE:

  • Harvester is 100% Open Source;
  • The platform is based on Kubernetes, KubeVirt, Longhorn, and other cloud-native solutions and is tailored for a containerized and microservices infrastructure;
  • It allows you to manage traditional (VM) and container loads using a unified dashboard;
  • It is not locked into specific hardware – unlike, e.g., Dell and NetApp solutions.

Harvester architecture

Harvester is marketed as a fully-fledged HCI platform providing a unified interface for managing computing resources, virtualization, storage, and networking.

Harvester architecture

The operating system: Harvester is based on the openSUSE Leap 15.3 distribution, which has been enhanced to include the containerOS (cOS) toolkit. cOS allows the user to customize the OS to boot standard container images on any infrastructure at minimal effort.

Kubernetes: The Rancher Kubernetes Engine 2 (RKE2), aka RKE Government, is responsible for managing K8s clusters. RKE2 is suitable for companies with strict security policies.

Virtualization: The KubeVirt add-on manages VMs by implementing typical Kubernetes virtualization features using the KVM hypervisor. KubeVirt allows you to run virtualized workloads along with containerized ones. The project was included in the CNCF sandbox in 2019. It is currently at the Incubating maturity level.

Storage: Longhorn, another incubating CNCF project, serves as a storage area network (SAN). It is a cloud-native, highly available distributed block storage for Kubernetes. MinIO is used to store VM images.

Networking: The Multus CNI plugin enables multiple network interfaces to be attached to VMs and provides VLAN support in a K8s cluster.

Harvester web interface

Harvester features

Virtualization

  • VM lifecycle management;
  • Monitoring of key VM metrics, such as CPU, memory, disk, and network utilization, using the built-in Grafana dashboard;
  • Cloud infrastructure management;
  • Support for SSH keys;
  • KVM console for the remote host (VNC) and serial port access;
  • VM templates;
  • Live VM migration;
  • Image exporting from existing VMs;
  • Terraform Harvester provider.

Storage

  • Longhorn block storage;
  • Built-in VM image storage;
  • Using S3 to backup/restore VMs;
  • Disk hot plugging.

Networking

  • Virtual IP addresses for the cluster;
  • Multi-segment network;
  • VLAN;
  • Custom SSL certificates.

Kubernetes (Rancher)

  • Kubernetes cluster provisioning;
  • Simultaneous virtualization management via Rancher for multiple Harvester clusters;
  • Multitenancy with RBAC support;
  • Built-in CSI driver.

A focus on Kubernetes

For simplicity’s sake, Harvester can be viewed as a Kubernetes platform for managing not only K8s clusters but also virtual machines using a single dashboard (the integration of RKE2 and KubeVirt made that possible).

Creating a VM in Harvester

Harvester uses the Kubernetes API, rendering the platform more user-friendly for DevOps teams that already use K8s as their primary container orchestration tool. The Kubernetes API acts as a universal language for automating both container and VM workloads.

Here are some brief notes about other HCI components:

  • Storage: The built-in Harvester Cloud Provider provides storage for Kubernetes containers. It includes the CSI driver and the cloud controller manager (CCM). CCM uses Longhorn to automatically balance storage resources between cluster nodes. Longhorn also accumulates local disk or network storage resources, using them to create block volumes for VMs.
  • Networking: The CNI used in Harvester implements an interface between the network providers and the VM network in the cluster. The VLAN is based on the bridge CNI plugin. The Harvester Network Controller is used to configure the network on the host the cluster is deployed on (it also has the bridge CNI and Multus-CNI under the hood).

Harvester can be administered both through the web interface (GUI) and CLI (using kubectl). In the case of kubectl, virtual machines are treated in the same way as Kubernetes Pods:

However, the developers claim that GUI is a fully-featured administration and debugging tool that can replace kubectl in the case that the user is not familiar with the latter. Basic knowledge of Kubernetes should be enough to master Harvester — provided that the user has a good understanding of Linux and virtualization.

Harvester can also be integrated with the K8s Rancher platform (v2.6.1 and up) to handle the complex multi-cluster infrastructure. In this case, the Harvester cluster can be administered through the Rancher dashboard and acts as an additional cloud provider.

Clusters can either be deployed locally or in a hybrid environment (e.g., you can use your own data center along with the public cloud) and be managed as a unified infrastructure using Rancher’s built-in authentication, access control, and monitoring tools.

Other options

There are three solutions that are more or less close to Harvester’s technical capabilities:

  • Proxmox Virtual Environment is an Open Source virtualization platform based on QEMU/KVM and LXC. Since the platform integrates computing resources, storage, and networking into a single system on the software level, it can be used for building an HCI.
  • The vSphere virtualization platform and the Tanzu Kubernetes platform. Virtual machines are run together with containers in a shared Kubernetes environment via the vSphere control panel.
  • The Kubernetes OpenShift platform and the Red Hat OpenShift Virtualization add-on. The add-on adds new CRD-based objects to the OpenShift cluster to enable virtualization features. All basic VM functionality is available. Multus-CNI is responsible for the network layer (just as in Harvester), OpenShift Container Storage is used for storage, while KubeVirt is used for virtualization.

Summary

Harvester’s pros:

  • It is free and Open Source;
  • It is based on Kubernetes and other popular cloud-native solutions;
  • It does not lock users into specific vendors or cloud providers; you can use common servers;
  • It provides all the essential functions for managing VMs and containers.

Harvester’s cons:

  • The SUSE platform is designed for bare-metal installations only. That may be a limiting factor for some potential Harvester users;
  • Harvester is a relatively young product. It cannot yet compete with VMware, Nutanix, and Red Hat in terms of features. Harvester does not yet boast major use cases (at least, publicly announced) that would prove that it is ready for production use. (It would be great to know about your experience in the comments below!)

However, as SUSE promises, Harvester’s functionality will expand. The company is committed to building a community around the project and invites everyone to contribute to its development.

Share