For many years there has been discussion about Kubernetes being a kernel or a distribution. Already in 2017, Tim Hockin and Michael Rubin talked about this at KubeCon North America. See the presentation here. What Tim and Michael discussed has happened. We have a Kubernetes Core project and many distributions. So we guess you could say we reached the point where the Kubernetes Core project is like the Linux kernel project.
Last year, Suzanne Ambiel wrote a nice piece in TheNewStack, Then and Now: Comparing Kubernetes to Linux. Kubernetes has become the “Linux of the Cloud”. There is only one Linux kernel, but many applications of it and distributions built upon it – according to Wikipedia there are more than 700 Linux distributions. In a similar vein, conformant distributions built on top of the Kubernetes core continue to increase. Kubernetes is made more complete by the more than 1,200 projects that support and enable a wide variety of implementations.
But if we’re making the Linux analogy with Kubernetes being the kernel, are these so-called Kubernetes distributions also distributions compared to a Linux distribution?
A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that is based upon the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one of the Linux distributions. A typical Linux distribution comprises a Linux kernel, GNU tools and libraries, additional software, documentation, a window system, a window manager, and a desktop environment. Each desktop environment includes built-in applications (such as file managers, configuration tools, web browsers, and games).
Nearly every Linux distribution can be downloaded for free and works out-of-the-box. Some of the most popular Linux distributions are Mint, Manjaro, and MX Linux.
Although Linux and Kubernetes cannot be compared one-on-one, there is however a parallel. We could say Kubernetes is like the Linux kernel. A kernel facilitates interactions between hardware and software components and that is exactly what Kubernetes does, but then on a slightly different level (between the nodes and the containers).
So, a Kubernetes distribution would be a distribution compared to Linux, when it would:
- Be free and open source
- Be easy to install
- Come with a desktop environment; a GUI with access to build-in applications and offers an intuitive way of working with Kubernetes, hiding its internals
- Contain built-in applications; think a policy manager, service mesh, configuration manager, tools for logging, dashboards for metrics, tools for tracing, et cetera. All of these tools are ready to use (so a user does not need to install and configure them) after installing the distribution
- Offer an out-of-the-box experience: after installation, a user can directly log in and be able to start using the system and all the build-in applications
Are there any real Kubernetes distributions?
Some vendors claim to offer a full Kubernetes distribution. But are they really a distribution compared to the above criteria?
There are now a bunch of different versions/distributions of Kubernetes. Think K3s, RKE, GKE, EKS, AKS, OpenShift, Tanzu, et cetera. But although all of them call their product a distribution (or are called a distribution), they do not have built-in applications, are not all that easy to install, and do not offer an out-of-the-box experience. Most of them are only laying down the foundation, so you can build the rest of the operating system (the real distribution or platform) yourself.
So no, we don’t think there is currently any real Kubernetes distribution available in the market. Time for change wouldn’t you say?
Is Otomi a Kubernetes distribution?
No, Otomi is not a full distribution in comparison to the Linux analogy. It does not come with an integrated kernel (Kubernetes), but it comes really close. Instead, Otomi can use any Kubernetes API as its kernel, making it even more flexible but also cloud-agnostic.
The Linux distribution analogy for us is the best way to explain what Otomi is. Otomi is an operating system approach to Kubernetes. It uses Kubernetes as its kernel, uses Helm/Helmfile as its package manager, offers a desktop environment combined with built-in applications, can be installed with a single command, is free, and works out-of-the-box. This means that all built-in applications are pre-configured, integrated, and ready to use. But just as any Linux distro, you can also install your own applications and use the Otomi CLI or Kubectl to dive under the hood.
You can install Otomi on any Kubernetes cluster (on AWS, Azure and GCP), log in to the console (the desktop environment), start using all the integrated applications, and deploy your containers with a UI that hides all the Kubernetes internals.
There is (currently) nothing that really compares to Otomi, but we hope that eventually there will be (just as with Linux distributions) a lot of different distributions to choose from. All free, open-source, and each with its own appearance, characteristics, and integrated applications. Wouldn’t that be great?
In the article mentioned by Suzanne Ambiel, there was also an interesting quote from Craig McLuckie (Kubernetes co-founder and now VMware executive):
“If we do our job right, people will stop talking about Kubernetes in the next five years. Not because it goes away, but because it becomes a normalized and boring substrate supporting waves of new innovation above it.”
Let’s make Kubernetes boring! (just as Linus Torvalds, modest goal for Linux) and add new innovations above it.