KQueen: The Open Source Multi-cloud Kubernetes Cluster Manager
Existing toolsRecently I did some personal research, and I discovered the following numbers around the Kubernetes community:
- ~22 k8s distribution support providers
- ~10 k8s community deployment tools
- ~20 CaaS vendors
most existing vendors do not solve the question of how to manage clusters in multiple locations"My k8s cluster is better than yours" syndrome: In the OpenStack world, where we originally came from, we're used to complexity. OpenStack was very complex and Mirantis was very successful, because we could install it the most quickly, easily, and correctly. Contrast this with the current Kubernetes world; with multiple vendors, it is very difficult to differentiate in k8s installation. My view is that k8s provisioning is commodity with very low added value, which makes k8s installation more as vendor checkbox feature, rather than decision making point or unique capability. At the moment, however, let me borrow my favourite statement from a Kubernetes community leader: “Yes, there are lot of k8s installers, but very few deploy k8s 100% correctly.” Moreover, all public cloud providers will eventually offer their own managed k8s offering, which will put various k8s SaaS providers out of business. After all, there is no point paying for managed k8s on AWS to a third-party company if AWS provides EKS.
K8s provisioning is a commodity, with very low added value.Visibility & Audit: Lastly, but most importantly, deployment is just the beginning. Users need to have visibility, with information on what runs where in what setup. It's not just about central monitoring, logging and alerting; it's also about audit. Users need audit features such as "all docker images used in all k8s clusters" or "version of all k8s binaries". Today, if you do find such a tool, it usually has gaps at the multi-cluster level, can providing information only for single clusters. To summarize, I don't currently see any existing Kubernetes tool that provides all of those features.
KQueen as Open Cluster ManagerBased on all of these points, we at Mirantis decided to build a provisioner-agnostic Kubernetes cluster manager to deploy, manage and operate various Kubernetes clusters on various public/private cloud providers. Internally, we have called the project KQueen and, and it follows several design principles:
- Kubernetes as a Service environment deployment: Provide a multi-tenant self-service portal for k8s cluster provisioning.
- Operations: Focus on the audit, visibility, and security of Kubernetes clusters, in addition to actual operations.
- Update and Upgrade: Automate updating and upgrading of clusters through specific provisioners.
- Multi-Cloud Orchestration: Support the same abstraction layer for any public, private, or bare metal provider.
- Platform Agnostic Deployment (of any Kubernetes cluster): Enable provisioning of a Kubernetes cluster by various community installers/provisioners, including those with customizations, rather than a black box with a strict installation procedure.
- Open, Zero Lock-in Deployment: Provide a pure-play open source solution without any closed source.
- Easy integration: Provide a documented REST API for managing Kubernetes clusters and integrating this management interface into existing systems.
- Trigger deployment on the provisioner, enabling KQueen to use various provisioners (AKS, GKE, Jenkins) for Kubernetes clusters. For example, you can use the Jenkins provisioner to trigger installation of Kubernetes based on a particular job.
- The provisioner installs the Kubernetes cluster using the specific provider.
- The provisioner returns the Kubernetes kubeconfig and API endpoint. This config is stored in the KQueen backend (etcd).
- KQueen manages, operates, monitors, and audits the Kubernetes clusters. It reads all information from the API and displays it as a simple overview visualization. KQueen can also be extended by adding other audit components.
KQueen in actionThe KQueen project can help define enterprise-scale kubernetes offerings across departments and give them freedom in specific customizations. If you'd like to see it in action, you can see a generic KQueen demo showing the architecture design and managing a cluster from a single place, as well as a demo based on Azure AKS demo. In addition, watch this space for a tutorial on how to set up and use KQueen for yourself. We'd love your feedback!
Want to be a Kubernetes expert?
Check out our Kubernetes and Docker Bootcamps and related certification.