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, refer to Requirements.

Installation

Install all required snaps on each machine intended as a MicroCloud cluster member. Enter the following commands on all machines:

Snap channels

The snap channels shown below install the current feature release of MicroCloud, along with the most recent compatible releases for its components. To install the current LTS release of MicroCloud instead, refer to the install guide for that version.

sudo snap install lxd --channel=6/stable --cohort="+"
sudo snap install microceph --channel=squid/stable --cohort="+"
sudo snap install microovn --channel=24.03/stable --cohort="+"
sudo snap install microcloud --channel=3/stable --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 different channel

A channel includes both a track (such as 3) and a risk level (such as stable or edge).

MicroCloud’s component snaps must use tracks that correspond to the same MicroCloud release within the matrix of compatible versions.

For production deployments, use the stable risk level for all snaps. For testing or development, you might use a different risk level for some snaps. Refer to Risk levels for more information.

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

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

For example, to use the 6/edge channel for the LXD snap, run:

sudo snap install lxd --cohort="+" --channel=6/edge

Even if the risk level for a snap differs from the other snaps, the same channel must be used for that snap on all cluster members. For example, if you use the 6/edge channel for the LXD snap, then all cluster members must use that channel for the LXD snap.

For details about the MicroCloud snap channels, refer to 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. Refer to Hold updates for details.