Harvester is an open source hyper-converged infrastructure (HCI) software built on Kubernetes. It is an open alternative to using a proprietary HCI stack that incorporates the design and ethos of Cloud Native Computing.
Harvester implements HCI on bare metal servers. Harvester is designed to use local, direct attached storage instead of complex external SANs. It ships as an integrated bootable appliance image that can be deployed directly to servers through an ISO or PXE boot artifact.
Some notable features of Harvester include the following:
- VM lifecycle management including SSH-Key injection, Cloud-init and, graphic and serial port console
- VM live migration support
- Supporting VM backup and restore
- Distributed block storage
- Multiple NICs in the VM connecting to the management network or VLANs
- Virtual Machine and cloud-init templates
- Rancher integration with multi-cluster management and the Harvester node driver
- PXE/iPXE boot support
- Virtual IP and bond NIC support
- Monitoring integration
The following diagram outlines a high-level architecture of Harvester:
- Longhorn is a lightweight, reliable, and easy-to-use distributed block storage system for Kubernetes.
- KubeVirt is a virtual machine management add-on for Kubernetes.
- Elemental for openSUSE Leap 15.3 is a Linux distribution designed to remove as much OS maintenance as possible in a Kubernetes cluster.
To get the Harvester server up and running the following minimum hardware is required:
|CPU||x86_64 only. Hardware-assisted virtualization is required. 8-core processor minimum; 16-core or above preferred|
|Memory||32 GB minimum, 64 GB or above preferred|
|Disk Capacity||120 GB minimum, 500 GB or above preferred|
|Disk Performance||5,000+ random IOPS per disk(SSD/NVMe). Management nodes (first 3 nodes) must be fast enough for Etcd.|
|Network Card||1 Gbps Ethernet minimum, 10Gbps Ethernet recommended|
|Network Switch||Trunking of ports required for VLAN support|
We recommend server-class hardware for best results. Laptops and nested virtualization are not supported.
You can use the ISO to install Harvester directly on the bare-metal server to form a Harvester cluster. Users can add one or many compute nodes to join the existing cluster.
To get the Harvester ISO, download it from the Github releases.
During the installation, you can either choose to form a new cluster, or join the node to an existing cluster.
- Mount the Harvester ISO disk and boot the server by selecting the
- Choose the installation mode by either creating a new Harvester cluster, or by joining an existing one.
- Choose the installation device that Harvester will be formatted to.
- Configure the hostname and select the network interface for the management network. By default, Harvester will create a bonded NIC named
harvester-mgmt, and the IP address can either be configured via DHCP or a static method.
- (Optional) Configure the DNS servers. Use commas as a delimiter.
- Configure the
Virtual IPwhich you can use to access the cluster or join the other nodes to the cluster.
- Configure the
cluster token. This token will be used for adding other nodes to the cluster.
- Configure the login password of the host. The default SSH user is
- (Optional) Configure the NTP Servers of the node. This defaults to
- (Optional) If you need to use an HTTP proxy to access the outside world, enter the proxy URL address here. Otherwise, leave this blank.
- (Optional) You can choose to import SSH keys from a remote URL server. Your GitHub public keys can be used with
- (Optional) If you need to customize the host with a cloud-init config, enter the HTTP URL here.
- After confirming the installation options, Harvester will be installed to your host. The installation may take a few minutes to be complete.
- Once the installation is complete, it will restart the host. After the restart, the Harvester console containing the management URL and status will be displayed. You can Use
F12to switch between the Harvester console and the Shell.
- The default URL of the web interface is
- You will be prompted to set the password for the default
adminuser when logging in for the first time.
Find more documentation here
Check out this demo to get a quick overview of the Harvester UI.
Harvester is 100% open-source software. The project source code is spread across a number of repos:
|Harvester Terraform Provider||https://github.com/harvester/terraform-provider-harvester|
|Harvester Cloud Provider||https://github.com/harvester/cloud-provider-harvester|
|Harvester Load Balancer||https://github.com/harvester/load-balancer-harvester|
|Harvester Network Controller||https://github.com/harvester/harvester-network-controller|
If you have any feedback or questions, feel free to file an issue.
Copyright (c) 2021 Rancher Labs, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.