Simple, small-scale Kubernetes distributions for the edge

Right-Sized

Home Brew

Canonical's mini-Kuberntes setup also gives you a great deal of freedom at setup. The distribution will run on a single node without network ingress but also on a cluster network with etcd and OVN. The distribution's add-on strategy is particularly appealing to Kubernetes newcomers. Tools that admins would otherwise have to set up manually as YAML files with deployments and role-based access control (RBAC) configurations are set up with a single microk8s enable command.

The downside is Canonical's self-built components and constructs such as Dqlite, K8s on containerd, and the confusing Snap setup. Where other manufacturers stick to established standards and tools supported by a large community (projects such as CRI-O, etcd, and SQLite have at least 10 times as many developers and commits compared with the Canonical tools), Canonical has gone for a do-it-themselves solution.

Over the years, Canonical has repeatedly tried to grab users' attention with alternative solutions to current standard tools – usually with little success. While OpenStack was establishing itself as a scale-out virtual machine (VM) architecture, Canonical was backing the largely unknown Eucalyptus. Ubuntu chose LXC/LXD instead of the more popular Docker and the Unity desktop instead of Gnome  – neither of which helped Canonical make more friends. You will want to consider carefully whether to invest resources and learning overhead in tools and architectures that might disappear in the long term.

Conclusions

All three small distributions in this brief overview offer a relatively simple and compact Kubernetes distribution for operation on an edge device or in a small branch office environment. MicroShift provides very good edge integration with the OSTree image builder but currently only runs as a single-node setup. At its current stage of development, the distribution is too closely tied to the commercial Red Hat products and services. As an open source project, the tool should not have to rely on closed registries.

MicroK8s from Canonical makes it very easy for users to get started with Kubernetes and scales from a single node with a reduced feature set to a cluster, if required. The various services are bundled as add-ons and can be set up with a single command. The lack of SELinux support is a negative factor. Canonical's in-house tools such as Dqlite and the confusing Snap setup are also unlikely to impress many users.

K3s is a flexible distribution that also scales from a simple edge setup to a small cluster. The environment is very easy to set up, runs on various distributions, and supports SELinux. K3s also banks on well-maintained standard projects such as CRI-O and SQLite across the board. The migration option, which lets you switch from SQLite to etcd during operation if you want to upgrade your single-node setup to a cluster, is also appealing.

Infos

  1. "A multicluster management tool for Kubernetes" by Andreas Stolzenberger, ADMIN , issue 76, 2023, https://www.admin-magazine.com/Archive/2023/76/A-multicluster-management-tool-for-Kubernetes/
  2. K3s: https://k3s.io
  3. MicroShift: https://cloud.redhat.com/blog/meet-red-hat-device-edge-with-microshift
  4. MicroK8s: https://microk8s.io

The Author

Andreas Stolzenberger worked as an IT magazine editor for 17 years. He was the deputy editor in chief of the German Network Computing magazine from 2000 to 2010. After that, he worked as a solution engineer at Dell and VMware. In 2012 Andreas moved to Red Hat. There, he currently works as principal solution architect in the Technical Partner Development department.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs



Support Our Work

ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.

Learn More”>
	</a>

<hr>		    
			</div>
		    		</div>

		<div class=