Canonical announced about the readiness of the tools MicroCloud, which allows you to quickly deploy computing clusters and cloud systems on your equipment with shared distributed data storage and a secure virtual network. The toolkit is designed as snap package, which includes the components necessary to manage the operation of cluster nodes. Commercial technical support for MicroCloud-based solutions is provided as part of the Ubuntu Pro service, but those who can do without support can use the tools without restrictions. The project’s developments are written in Go and spread licensed under AGPL 3.0.
MicroClouds by default uses tools to ensure fault tolerance, so it allows you to create clusters of at least three nodes (clusters of up to 50 nodes are mentioned as the upper limit). The software stack used to manage the cluster is based on the use of a centralized management system for containers and virtual machines LXDplatforms for building virtual networks OVN (Open Virtual Network) and distributed fault-tolerant storage Ceph. MicroClouds provides tools to automatically configure LXD, Ceph and OVN on all cluster nodes.
To determine new servers on the network that can be connected to the cluster, use mDNSWhat allow tune entire cluster running just one “microcloud init” command on one of the nodes, having previously installed snap packages lxd, microceph, microcloud And microovn. Ubuntu Linux is considered as the main platform, but the toolkit is not tied to Ubuntu and can be used in any distribution kits for which it is possible add support for packages in snap format (Arch, CentOS, Fedora, Debian, openSUSE, RHEL, etc.). It is also possible to create clusters based on environments that use the atomically updated Ubuntu Core system.
After running the “microcloud init” command, the toolkit will detect the presence of other servers on the local network, prompt you to add disks to the shared Ceph storage, and offer to configure virtual network settings. To be included in the cluster, the above snap packages must first be installed on the servers. The cluster configuration can be saved in YAML format for subsequent deployment of similar systems. To add additional nodes after initialization is complete, you can use the “microcloud add” command.
Shared file storage is created with the inclusion of replication and fault tolerance, which makes it possible in the event of failure of individual nodes not to lose data, thanks to the storage of several copies of data on different nodes. To deploy Ceph-based storage in a cluster, in addition to local disks, there must be at least three separate disks (not partitions) allocated for distributed data storage on three different computers.
Once the cluster is ready, users can run their applications using system containers or virtual machines, as well as access Ceph shared storage and LXD-based centralized management tools. To manage containers on top of the cluster, the Kubernetes platform (edition Microk8s). OpenID Connect (OIDC) and authentication-based authentication can be used to authenticate users of virtual machines or containers in a cluster.
Flexible management of the provided CPU, memory and I/O resources is possible, as well as forwarding of USB devices, GPUs and drives into the environment. Isolated and virtual environments can be transferred between nodes in live migration mode and saved using snapshots. Cluster performance metrics and event logs can be exported for monitoring using Prometheus and Grafana.
In addition to creating production clusters and private cloud systems, the tools can also be used to quickly conduct experiments on developer systems. For example, MicroCloud can be used to simulate a cluster on a developer’s laptop for testing developing cloud applications, experimenting with new technologies or simulating complex infrastructures.
Thanks for reading: