Container microdistributions k3OS and Flatcar
Micro Cures
Similar Methods, Different Targets
Now that the role and function of microdistributions are clear, I will discuss two representatives of this category in detail. Most admins probably will have heard of JeOS (Figure 3) or CoreOS, because these are the microdistributions from established vendors SUSE and Red Hat.
k3OS and Flatcar, on the other hand, are the underdogs and probably unknown to many administrators. However, the following description does not intend to compare the products, because they are based on different factors and partly address different target groups. Rather, it is a brief overview of the product itself.
k3OS for Kubernetes Lovers
k3OS is especially for users who want to use K3s [3]. If you don't know K3s yet but regularly work in the Kubernetes (K8s) context, you have probably already guessed that the abbreviation has something to do with Kubernetes. K3s is a fully Kubernetes compatible distribution of the orchestrator, which is easier to use, smaller, and comes with fewer dependencies.
K3s also comes with packet filtering rules out of the box, which, according to the developers, improved the security of the entire installation. Last but not least, K3s helps admins where they really need it. One of the most annoying features of Kubernetes is setting up a port share on each Kubernetes worker (kubelet) so that the Kubernetes manager can talk to the kubelets.
K3s exposes the API interface over a websocket tunnel instead, so port sharing is no longer a problem. Anyone in the enterprise who has to deal with firewall constructs and compliance rules will like this feature.
Under the Hood
Additionally, K3s bundles various Kubernetes extensions so that they are ready for use on an ad hoc basis. Containerd and runC serve as runtime environments for the containers, and Flannel takes care of the network in between. CoreDNS, Helm, and Kine are also on board by default. With tools you program in-house, K3s makes it easier to maintain required SSL certificates and manage Etcd as a consensus algorithm.
K3s, however, has had to dump some features to become a lighter weight Kubernetes. The storage drivers, which K8s includes out the box, are missing, as is the functionality to communicate with cloud providers. However, because Kubernetes itself is introducing tweaks and replacing the existing functions with new approaches, this point should not be a problem for most admins.
k3OS is not a fork of an existing Linux distribution, which is quite unusual in itself. Most projects that build microdistributions today take an existing distribution and remove the components that are not necessary from the view of the maintainer. k3OS is basically based on a mixture of an Alpine userland and the Ubuntu 18.04 kernel. The developers have assembled the individual components such that they harmonize as well as possible for k3OS.
However, one thing is evident: The evaluation criteria that apply to classical distributions only play a minor role in microdistributions. Basically, the system just needs to support all the server's hardware, and a recent hardware enablement (HWE) kernel by Ubuntu is certainly not a bad idea for that purpose.
Buy this article as PDF
(incl. VAT)