Since Google released Kubernetes to the open source community in 2014, it has changed the way modern software is developed, operated and scaled. Kubernetes brought in automation of standard infrastructure features for containers, which, combined with low downtime and great performance, enabled many companies running containers at scale.
However, just installing Kubernetes to have a production grade platform is not enough. You have to address the issues of authentication, networking, security, centralized monitoring and logs management, etc. Moreover, when it comes to enterprise level, complexity of Kubernetes implementation and maintenance becomes a serious obstacle on the way towards its adoption.
Kubernetes platforms and cluster managers are designed to address common challenges of enterprise users, such as security, central visibility and multi-cluster support. They provide a simple way to manage clusters without deep knowledge of Kubernetes inner workings, this way bringing K8s closer and facilitating its further adoption. In this article, we will look at some popular cluster management solutions and the advantages they offer over regular upstream Kubernetes.
OpenShift has a strong lead in enterprise-level solutions for container management. It is a hybrid cloud Kubernetes platform developed by Red Hat, the second largest code-contributor to K8s behind Google. OpenShift includes an enterprise-grade Linux OS, container runtime, networking, monitoring, container registry, authentication, and authorization solutions. OpenShift enhances Kubernetes by adding a new web console, a more powerful CLI, multi-tenancy support, and tools for deploying high-availability clusters, centralized cluster services, and much more. With Red Hat’s purchase of CoreOS, OpenShift is also gaining features from Tectonic including automated updates, Operators, and the Quay container registry.
Rancher is an open source container management platform geared to deploy and manage Kubernetes clusters at scale. It has a 5-layer architecture that comprises a certified Kubernetes distribution (including Rancher’s RKE and K3s), consistent cluster operations, security/authentication/policy management, shared tools and services, and a secure application deployment engine. Among Rancher’s strong points is the ability to create Kubernetes clusters on VMware clusters, bare metal servers, and VM instances on clouds that do not yet support K8s service. It also integrates with the hosted cloud services like EKS and GKE. Rancher clusters come with a strict differentiation of access rights, with the UI depending on the user’s role: administrators see all the clusters at the global level, while users see only the clusters that they have access to. RKE clusters can scale up to 100,000 nodes with the Rancher server being able to manage up to 2000 clusters.
Cisco Container Platform (CCP)
CCP has been developed in partnership with Google Cloud. It uses native Kubernetes to deploy and maintain container platforms both on-premise and on hybrid cloud environments. It comes with integrated networking, security, management and analytics implemented by means of 100% open source components. CCP has a simple intuitive GUI that allows deploying clusters by filling in the questions and proceeding through a step-by-step algorithm. All the repetitive tasks and monthly updates are automated. CCP has a built-in visibility for all your clusters, and comes with a preconfigured persistent volume storage and a pre-integrated Istio.
Gardener is an open source project of SAP developed in collaboration with SUSE. The project reuses Kubernetes primitives and applies a special pattern that allows running a huge number of clusters. It takes an initial Kubernetes cluster (called “seed” cluster) and settles within it the control plane components (such as the API server, scheduler, controller-manager, etcd and others) of the end-user’s cluster as simple Kubernetes pods. In this way, the control planes of end-users’ clusters (called “shoot” clusters) run as pods in the seed cluster. The seed and shoot clusters are managed by the Gardener, which is an aggregated API server that runs inside another dedicated Kubernetes cluster (called “garden” cluster). So far Gardener supports five cloud providers, including AWS, Mircosoft Azure, Google Cloud, OpenStack (SUSE Cloud), and Alibaba Cloud.
Gravity, an open source project from Gravitational, focuses specifically on packaging, deploying and updating Kubernetes applications in restricted, regulated and remote environments. It has an entire Kubernetes cluster with the applications running inside, packaged into a single deployable file, which is called a cluster image and is a .tar archive. This way Gravity allows creating numerous identical replicas of the original cluster from scratch on any infrastructure, including public and private clouds, bare-metal, edge and air-gapped environments. Remote access and compliance rules are implemented by means of Teleport, which is the Gravitational’s multi-region SSH server.
Kublr is a customizable, production-ready Kubernetes management platform designed to address the needs of enterprise customers in terms of security and centralized management. The platform allows running Kubernetes clusters at scale while managing them from a single pane of glass that includes log collection, monitoring, audit, identity management, and disaster recovery options. All main cluster configuration parameters are available through the UI; Kublr also allows customizing cluster specifications for more advanced use cases. Centralized monitoring is built on top of Prometheus and Grafana and enables monitoring of key cluster metrics across all clusters, a specific cluster or specific components. The same applies to a centralized logging, which is implemented by means of ELK stack.
Recently SHALB engineers have been working on a new open source project designed to deploy Kubernetes clusters and apps with easy customization and minimum costs. Cluster.dev is a Kubernetes-driven platform for cloud-based cluster operations. It leverages GitOps and declarative infrastructure approach to create and manage Kubernetes clusters. Cluster.dev uses ArgoCD for deploying applications and comes with a built-in continuous integration tool for building CI pipelines for your apps. The platform provides the configured Ingress load balancers, Kubernetes dashboard, logging (by the ELK stack) and monitoring (based on Prometheus/Grafana). So far the project is in Alpha stage. The upcoming features include integration with GKE and DO cloud providers, SSO access, usage of Kubernetes Operators, multi-cluster support, and much more. For more information, see the project’s roadmap.
The table below provides information on the most popular cluster management solutions with a brief stats showing the project health on GitHub (if available).
|Tool||Functionality||Stars||Contrib.||Commits (last 6 months)||References|
|Rancher||An open-source container management platform that delivers K8s-as-a-Service||14.3k||93||756||rancher.com|
|OpenShift||A hybrid cloud, enterprise K8s platform to build and deliver better applications faster||7.4k (Origin)||387 (Origin)||490 (Origin||www.openshift.com|
|Cisco Container Platform (CCP)||A container management platform for production-grade environments, powered by K8s||N/A||N/A||N/A||www.cisco.com|
|KubeSphere||A distributed operating system that runs atop of K8s and provides full stack system services for enterprise-critical containerized workloads||3.4k||23||309||kubesphere.io|
|Gardener||A tool to manage numerous K8s-conformant clusters in multiple clouds and on various cloud providers||1.5k||82||533||gardener.cloud|
|Kublr||A pluggable, enterprise-grade K8s platform that automates the complexity of running containerized applications at scale||N/A||6||N/A||kublr.com|
|Gravity||An image-based K8s packaging and management solution||846||24||256||gravitational.com|
|Kubermatic||An enterprise-level software that automates multicloud, on-prem, and edge operations with a single management UI||N/A||9||N/A||www.loodse.com
|KQueen||A provisioner-agnostic K8s cluster manager to deploy, manage and operate various K8s clusters on various public/private cloud providers||124||15||_||www.mirantis.com|
|Cluster.dev||An open-source system for creating and managing K8s clusters with the GitOps approach||52||7||557||_|
Cluster managers augment the upstream Kubernetes with the features that make it easier to deploy and run on enterprise level. While their functionality may vary depending on a vendor, the core set of features includes:
- the ability to run distributed workloads on heterogeneous environments;
- maintaining hundreds of clusters at scale;
- central visibility for all your clusters;
- enhanced security and compliance rules;
- automated Kubernetes upgrades, backups and deployments;
- integrated monitoring and centralized logging.