A vendor used this term ‘Kubernetes Distribution’ at a meeting last week, possibly the new buzzword?
Let’s try to understand ‘Linux Distribution’ and ‘Java EE (J2EE) Distribution’ then apply the same principles for ‘Kubernetes Distribution’.
Linux Distribution (Linux Distro)
The core of the Linux (Kernel) is same for all Linux flavors such as Ubuntu, Debian, CentOS and Red Hat Linux. They do use the same Kernel available at www.kernel.org .
It is Open Source.
The vendors of various Linux flavors pull the Kernel into their lab and add additional features to meet the needs of their target market. They build customized user interface, package management, hardware compatibility drivers, security and many other features with technical support and training.
Java EE (J2EE) Distribution
Java EE is the Kernel of a Java Application Server. The core is the same for Application Servers such as Oracle WebLogic, IBM WebSphere, Red Hat Wildfly (JBoss) and Apache Tomcat.
The vendors can choose the required components and enable functionalities for their target market. They build customized console UI’s, datasources, operational scripts, deployments and monitoring without breaking the core Java EE libraries.
Now you got a visual understanding about ‘Kubernetes Distribution’.
The official Kubernetes repository is https://github.com/kubernetes/kubernetes . A user can pull the source code, build, compile and install at the target environment.
It’s called Core or Plain or Vanilla Kubernetes Distribution.
Few vendors pull the core Kubernetes code from the above repository and add additional features to serve their target market.
I would classify these distributions with the following categories.
Core Distribution (Plain or Vanilla)
Canonical Kubernetes (Ubuntu) and Kontena Pharos (Discontinued from Jan 03, 2020) are good examples for ‘Plain Kubernetes’. The vendors do not modify the core distribution but test the releases, provide technical support and training.
Core Distribution with Management Tools
Kuberiter is an example for this distribution. As a MultiCloud Management tool, it supports Core Distribution with user friendly automated tools for objects creation, objects management, chart management, containers, service mesh and DevOps secrets management tool at AWS, Azure, GCP and On-Premise. It also does test the releases, provide technical support and training. An economical solution for SMB’s.
IBM Pivotal Container Service (PKS)
IBM Pivotal Container Service (PKS) is another example. PKS uses BOSH to instantiate the installer program to provision Kubernetes with few management tools.
A widely adopted distribution at fortune companies. The examples are Red Hat OpenShift Container Platform and Rancher.
Red Hat OpenShift Container Platform
OpenShift Container Platform is Red Hat’s Hybrid Cloud platform, built around a core of application containers powered by Docker, with orchestration and management provided by Kubernetes, on a foundation of Red Hat Enterprise Linux and Red Hat Enterprise Linux CoreOS.
Red Hat modifies the core distribution to some extent.
It has the following additions;
- The OpenShift client program is OC, a superset of kubectl.
- An user friendly interface to manage Kubernetes Clusters.
- CRI-O container run time.
- Out of the box Container Registry.
- Add-ons such as Jenkins, Istio, Prometheus etc.
Note, Red Hat OpenShift is a very expensive solution to maintain.
Rancher is a MultiCloud Kubernetes management platform. It is built on top of Kubernetes, and includes an upstream Kubernetes hyperkube distribution. It uses Docker as the underlying container runtime and utilizes Kubernetes Orchestration.
Rancher has management tools products that help out Docker and Kubernetes. The two notable examples are Submariner, which enables pod-to-pod communication between K8S clusters, and RancherOS, a custom Linux distribution designed to be lightweight for use as the base for container images.
The primary target market for this distribution is IoT/Edge devices. It supports single node cluster, offline development, upstream releases and has a small footprint.
MicroK8S and K3S are good examples of this distribution.
Almost every Cloud provider has Kubernetes Managed Service offering today. Though they don’t fall under the ‘Distributions’ category, they have a big impact in the industry.
Some of the Managed Kubernetes Services are Amazon EKS, Azure Kubernetes Service (AKS), Azure Red Hat OpenShift Managed Service and Google Kubernetes Engine (GKE). The managed services manage the Kubernetes Control Plane and let the consumers control the worker nodes (applications). A consumer can use the same Cloud console and utilities to operate the K8S Cluster.
We are at the very early stage of defining policies, community relations for ‘Kubernetes Distribution’. However, it is good to know the differences so you can choose what is right for your organization.
Please subscribe at www.kuberiter.com to try our DevOps SaaS Services.