How to install MicroCloud

Pre-deployment requirements

The requirements in this section apply to all MicroCloud deployments.

A physical or virtual machine intended for use as a MicroCloud cluster member must meet the following prerequisites:

  • Software:

    • Ubuntu 22.04 or newer (LTS version recommended)

      • If you intend to use ZFS storage, use a non-HWE (Hardware Enabled) variant of Ubuntu 22.04

    • snapd 2.59 or newer

  • Networking:

    • Fixed IP addresses (DHCP not supported)

    • At least two network interfaces per cluster member: one for intra-cluster communication and one for external connectivity to the uplink network

    • Uplink network must support both broadcast and multicast

    • Intra-cluster interface must have IPs assigned; external connectivity interface (to uplink) must not have any IPs assigned

  • Storage:

    • Disks should be free of existing partitions or file systems

    • For local storage, each cluster member must have at least one local disk

    • If you intend to use full disk encryption on a cluster member, it must have snapd version 2.59.1 or newer installed and the dm-crypt kernel module available

      • To check if the module exists, run:

      sudo modinfo dm-crypt
      

For detailed information, see: Requirements.

Installation

To install MicroCloud, install all required snaps on all machines that you want to include in your cluster. You can optionally specify a channel for each snap, but generally, you can leave out the channel to use the current recommended default.

To do so, enter the following commands on all machines:

sudo snap install lxd --cohort="+"
sudo snap install microceph --cohort="+"
sudo snap install microovn --cohort="+"
sudo snap install microcloud --cohort="+"

The --cohort flag ensures that versions remain synchronized during later updates.

Following installation, make sure to hold updates.

Previously installed snaps

If a required snap is already installed on your machine, you will receive a message to that effect. In this case, check the version for the installed snap:

snap list <snap>

View the matrix of compatible versions to determine whether you need to upgrade the snap to a different channel. Follow either the update or upgrade instructions below.

Update

If the installed snap is using a channel corresponding to a release that is compatible with the other snaps, update to the most recent stable version of the snap without changing the channel:

sudo snap refresh <snap> --cohort="+"

Upgrade

If you need to upgrade the channel, run:

sudo snap refresh <snap> --cohort="+" --channel=<target channel>

Example:

sudo snap refresh microcloud --cohort="+" --channel=2/stable

Optionally specify a channel

Channels correspond to different releases. When unspecified, MicroCloud and its components’ snaps use their respective recommended default channels.

To specify a different channel, add the --channel flag at installation:

sudo snap install <snap> --cohort="+" --channel=<target channel>

For example, to use the 3/edge channel for the MicroCloud snap, run:

sudo snap install microcloud --cohort="+" --channel=3/edge

For details about the MicroCloud snap channels, see: Channels.

Hold updates

When a new release is published to a snap channel, installed snaps following that channel update automatically by default. This is undesired behavior for MicroCloud and its components, and you should override this default behavior by holding updates. See: Hold updates.