harvester

command module
v0.3.0-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 29, 2021 License: Apache-2.0 Imports: 9 Imported by: 0

README

Harvester

Build Status Go Report Card Releases Slack

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.

harvester-ui

Overview

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.

Here are some notable features of the Harvester:

  1. VM lifecycle management including SSH-Key injection, Cloud-init and, graphic and serial port console
  2. VM live migration support
  3. Supporting VM backup and restore
  4. Distributed block storage
  5. Multiple NICs in the VM connecting to the management network or VLANs
  6. Virtual Machine and cloud-init templates
  7. Rancher integration and the Harvester node driver
  8. PXE/iPXE boot support

The following diagram gives 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.
  • K3OS is a Linux distribution designed to remove as much OS maintenance as possible in a Kubernetes cluster.

Hardware Requirements

To get the Harvester server up and running the following minimum hardware is required:

Type Requirements
CPU x86_64 only. Hardware assisted virtualization required. 4 cores minimum, 16 cores or above preferred
Memory 8 GB minimum, 32 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.

Quick start

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.

Note: This video shows a quick overview of the ISO installation.

  1. Mount the Harvester ISO disk and boot the server by selecting the Harvester Installer. iso-install.png
  2. Choose the installation mode by either creating a new Harvester cluster, or by joining an existing one.
  3. Choose the installation device that the Harvester will be formatted to.
  4. Configure the hostname and select the network interface for the management network, the IP address can either be configured via DHCP or static method. iso-installed.png
  5. Configure the cluster token. This token will be used for adding other nodes to the cluster.
  6. Configure the login password of the host. The default ssh user is rancher.
  7. (Optional) you can choose to import SSH keys from a remote URL server. Your GitHub public keys can be used with https://github.com/<username>.keys.
  8. (Optional) If you need to use an HTTP proxy to access the outside world, enter the proxy URL address here, otherwise, leave this blank.
  9. (Optional) If you need to customize the host with cloud-init config, enter the HTTP URL here.
  10. Confirm the installation options and the Harvester will be installed to your host. The installation may take a few minutes to be complete.
  11. Once the installation is complete it will restart the host and a console UI with management URL and status will be displayed. (You can Use F12 to switch between Harvester console and the Shell)
  12. The default URL of the web interface is https://your-host-ip:30443. iso-installed.png
  13. User will be prompted to set the password for the default admin user on the first-time login. first-login.png

Documentation

Find more documentation here

Demo

Check out this demo to get a quick overview of the Harvester UI.

Source code

Harvester is 100% open-source software. The project source code is spread across a number of repos:

Name Repo Address
Harvester https://github.com/harvester/harvester
Harvester UI https://github.com/harvester/harvester-ui
Harvester Installer https://github.com/harvester/harvester-installer
Harvester Network Controller https://github.com/harvester/harvester-network-controller
Harvester Node Driver https://github.com/harvester/docker-machine-driver-harvester

Community

If you need any help with Harvester, please join us at either our Slack #harvester channel or forums where most of our team hangs out at.

If you have any feedback or questions, feel free to file an issue.

License

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

http://www.apache.org/licenses/LICENSE-2.0

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.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
pkg
api
apis/harvesterhci.io/v1beta1
+k8s:deepcopy-gen=package +groupName=harvesterhci.io +k8s:openapi-gen=true +k8s:deepcopy-gen=package +groupName=harvesterhci.io +k8s:deepcopy-gen=package +groupName=harvesterhci.io
+k8s:deepcopy-gen=package +groupName=harvesterhci.io +k8s:openapi-gen=true +k8s:deepcopy-gen=package +groupName=harvesterhci.io +k8s:deepcopy-gen=package +groupName=harvesterhci.io
cmd
controller/master/supportbundle/types
shared types for support bundle controller and manager
shared types for support bundle controller and manager
generated/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
generated/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
generated/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
generated/clientset/versioned/typed/harvesterhci.io/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
generated/clientset/versioned/typed/harvesterhci.io/v1beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
generated/clientset/versioned/typed/k8s.cni.cncf.io/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
generated/clientset/versioned/typed/k8s.cni.cncf.io/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
generated/clientset/versioned/typed/kubevirt.io/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
generated/clientset/versioned/typed/kubevirt.io/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
generated/clientset/versioned/typed/snapshot.storage.k8s.io/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
generated/clientset/versioned/typed/snapshot.storage.k8s.io/v1beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
generated/clientset/versioned/typed/upgrade.cattle.io/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
generated/clientset/versioned/typed/upgrade.cattle.io/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
ref
tests
framework/printer
Package printer contains setup for a friendlier Ginkgo printer that's easier to parse by test automation.
Package printer contains setup for a friendlier Ginkgo printer that's easier to parse by test automation.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL