Overview of Kubernetes ecosystem.

Overview of Kubernetes ecosystem.

The reader may be aware that the linux kernel by itself is not the comprehensive operating system but different distributions take vanilla linux kernel and add required packages on top of it to make it into a distribution. The kind of packaging makes a distribution different from the other for solving certain or specific use cases & deployment scenarios. Kubernetes follows a similar philosophy as that of Linux where the core components of Kubernetes are synonyms to linux kernel and add different packages on top of it to make it a complete orchestration system for Cloud Native Applications. Kubernetes provides a variety of choices for every aspect making each  distribution to shoehorn it’s solution according to the use cases & deployment scenarios.

DIY Kubernetes:

On similar lines to Linux or for that matter any open source software, users can download packages from Kubernetes open source to build binaries from scratch and create a cluster. Even though this exercise is not that complicated, it is not simple either. A user may have to spend a few hours to get them installed and make it work. This is definitely a good exercise for folks who want to know different aspects of Kubernetes and how different pieces are connected with each other. This is definitely not even for dev clusters leave alone production clusters.

DIY++ Distribution:

These distributions are much better than DIY one’s where user can create and destroy clusters in a repeatable and consistent manner. DIY++ provide prebuild images that users can download to create clusters from scratch. Still the user is left to choose different vendors for different technologies such as networking, storage, container runtime, monitoring, HA etc. Building such clusters are good for users who would like to build their own container stack to have tight control over the env and also at the bleeding edge of the release so as to take advantage of latest features released in Kubernetes as and when they get released.  It is also good for organizations who have a strong SRE team with expertise in kubernetes.

PAAS-like Distribution

Such distributions provide a comprehensive container stack having all the bells and whistles to run cloud native applications. It is quite opinionated in a sense from infrastructure components such as compute, networking and storage and other tools such as configuration management, monitoring, security and other operational and optimization aspects. Rancher Kubernetes Engine(RKE), IBM’s Openshift, VMW’s Tanzu are few examples of such a distribution. These distributions are good for organizations that have limited investment on SRE and Devops and also for folks that want to quickly double down on Kubernetes towards production. Popular usecase for PAAS solution is on-premises but few vendors also provide cloud version of such distributions.

PAAS-like distributions don’t tend to be bleeding edge in a sense that they typically lag behind Open source Kubernetes by few versions and possibly may not support all the existing features given the opinionated nature of the distribution.

Managed Services:

Build on similar lines to PAAS-like distribution where Managed Services provides complete solutions for container stack. Though, these distributions are opinionated from the infrastructure components but lets the users and organizations to choose other aspects such as monitoring, security, operational tools etc. The popular vendors are   nodes. There is also a shared responsibility when it comes to security. The popular ones are; AWS has EKS(Elastic Kubernetes Service), GCP names it GKE(Google Kubernetes Engine) & Azure call’s it AKS(Azure Kubernetes Service). Managed Services is not as comprehensive as PAAS-like solution but does enough hooks to integrate with it’s corresponding cloud. For example, One can integrate GCP storage with GKE quickly or have Ingress create a Load Balancer with a YAML file.

Another key aspect of Managed services is the shared responsibility of components where the provider is responsible for master components while the user is responsible for worker nodes. This means that anything related to availability, reliability, scalability & security of master nodes is the responsibility of the provider while users should take care of these aspects for worker nodes.

Would recommend Managed Services as users can just focus on business applications and not worry much on infrastructure and managing the complexity of master nodes. It should be observed that installing Kubernetes is easy on Day-0 but hard to operationalize from Day-1 onwards.

Lightweight Kubernetes:

Lightweight Kubernetes is designed for resource constrained environments such as IOT, Edge etc. The binary is typically small in size by removing extra drivers that typically need to be part of the core. The lightweight distributions take minimum resources to run, for example K3s, consumes 512 MB of RAM and 200 MB of disk space. Few examples of lightweight Kubernetes are MicroK8S, K3S etc. K3S is developed by Rancher Labs while MicroK8S is by canonical provides a way to provision single node Kubernetes Cluster.

Multi-Cluster, Multi-Cloud & Hybrid Solutions:

Most of the solutions out in the market focus on single kubernetes clusters but the biggies has already started to focus on orchestrating multi-cluster, multi-cloud and hybrid deployments. There are no meaty solutions out there for multi-cluster yet but there are quite a few popping out multi-cloud fronts. The is real focus on hybrid cloud for orchestrating workloads in combination of on-premises and on-cloud. The players here are Google’s Anthos, Microsoft’s Azure Arc and AWS’s outposts, VMWare’s Tanzu, IBM’s Openshift.

No Comments

Post A Comment