What is Kubernetes as a Service?
Kubernetes as a Service (KaaS) makes it possible to operate Kubernetes, the world’s most popular container orchestrator, as a managed service. KaaS services are commonly provided in the public cloud, but some KaaS platforms can also be deployed on-premises.
The basic functionality of a KaaS platform is to deploy, manage, and maintain Kubernetes clusters. Key features of Kubernetes as a Service include self-service deployment, Kubernetes upgrades, scalability, and multi-cloud portability.
In this article, you will learn:
- Top 6 Kubernetes-as-a-Service Solutions
- Why Do You Need Kubernetes as a Service? Challenges of Operating Kubernetes In-House
- Kubernetes as a Service: Key Capabilities
- How Kubernetes as a Service Works
Top 6 Kubernetes-as-a-Service Solutions
Here are some of the most popular Kubernetes as a Service platforms.
Google Kubernetes Engine (GKE)
GKE was the first commercial Kubernetes as a Service offering, and is a respected and mature solution, built by Google which originally developed Kubernetes. Is part of the Google Cloud Platform (GCP). GKE lets you deploy, manage and monitor applications, services and persistent storage in managed Kubernetes clusters. It includes auto-scaling and offers auto-updates for Kubernetes.
Pricing: Billed according to resources used for Kubernetes worker nodes, with a charge of $0.1 per hour per cluster for master nodes.
Amazon Elastic Kubernetes Service (EKS)
EKS is a service used to run managed Kubernetes on AWS. It can deploy clusters across multiple availability zones (AZ) with high availability. EKS integrates with AWS services such as IAM, CloudTrail, and App Mesh. Worker nodes can be deployed using Amazon EC2 or Amazon Fargate, which provides a serverless model with billing according to actual memory and CPU resources used.
Pricing: Billed according to resources used for Kubernetes worker nodes, with a charge of $0.1 per hour per cluster for master nodes.
Related content: read our guide to Kubernetes on AWS ›
Azure Kubernetes Service (AKS)
AKS is a fully managed service that lets you manage Kubernetes on Microsoft Azure resources. It allows you to deploy directly to Azure, Azure Stack, or Internet of Things (IoT) edge devices. You can integrate with existing Azure services such as Azure Dev Spaces, Visual Studio Code, Azure DevOps, and Azure Monitor.
Pricing: Billed according to resources used for Kubernetes worker nodes, with no charge for master nodes.
Red Hat OpenShift
OpenShift OpenShift Dedicated is a highly customizable managed service you can use to deploy Kubernetes to any cloud (other editions of the service are specific to AWS, Azure, or IBM Cloud). It supports multi-tenancy, has a built-in dedicated image registry, and provides extended support for CI/CD tooling. It is based on the open source OpenShift Origin project.
Pricing: Hourly pricing for Red Hat OpenShift Dedicated starts from $0.171 for 4 vCPUs for worker nodes, and $0.03/hour for Kubernetes master nodes
VMware Tanzu
VMware Tanzu is a platform that enables organizations to build and manage Kubernetes environments, alongside traditional VMware workloads, with central control. It enables integrating Kubernetes with VMware technology like vSphere, vSAN and NSX, to manage VMware Kubernetes clusters within the same software defined data center (SDDC).
Tanzu has strong support for multi-cloud deployments, and provides enterprise-grade features like security, backup and utilization management.
Pricing: Starting from $995 per CPU
Related content: read our guide to Kubernetes on VMware ›
Docker EE
Docker EE is a hosting service provided by Docker, maker of the popular Docker container engine. It can run Kubernetes and Docker Swarm simultaneously and supports a range of certified plugins and container images. It can be used on both Linux and Windows servers.
Pricing: Free plan with limited container image requests, paid plans starting from $7/user/month
Related content: read our guide to Docker in production ›
Why Do You Need Kubernetes as a Service? Challenges of Operating Kubernetes In-House
Running Kubernetes independently, either on-premises or installed directly on cloud servers is a complex exercise. Kubernetes itself is open source, so this option has no licensing costs. However, your organization will need to take care of:
- Educating technical teams on Kubernetes, taking into account a steep learning curve
- Installation and upgrades
- Deploying applications
- Managing scalability and cluster configuration
- Ensuring a secure configuration
Some organizations can do without a full-fledged orchestrator, and use a simpler container service such as Amazon Fargate or Azure Container Instances. If you do need the power of Kubernetes, but do not have the time and skills to manage it in-house, look into a managed service.
Most KaaS services support the latest version of Kubernetes, allowing you to migrate existing Kubernetes workloads with no compatibility issues. The managed service will take care of maintenance tasks and provide a convenient interface for managing clusters.
According to several reports, including the CNCF Cloud Native Survey, usage of managed Kubernetes services is growing. Within each of the big three cloud providers, a majority of users deploying Kubernetes do so with Kubernetes as a Service offerings.
Related content: read our guide to Kubernetes architecture ›
Kubernetes as a Service: Key Capabilities
Kubernetes as a Service can help organizations leverage the best of Kubernetes without having to deal with the complexities involved with managing the operation. A KaaS can help take care of a variety of tasks, including setting up Kubernetes and any required CI/CD pipelines, as well as monitor and manage the operation, ensuring high availability, and releasing updates as needed.
Here are several key capabilities of KaaS:
- Deploy and manage—using a convenient interface to quickly deploy and update clusters.
- Continuous monitoring—including centralized and customized dashboards tracking metrics and providing insights on cluster health.
- Control plane management—runs Kubernetes control plane components, such as etcd and the API Server, while taking care of their resilience and scalability.
- Security—KaaS services deploy Kubernetes with security best practices built in.
How Kubernetes as a Service Works
While KaaS services provide standard built-in functionality, they can be customized to meet the needs of your application and engineering teams. For example, these platforms allow you to apply labels to pods, and use the management interface to define configurations or policies according to those labels.
Individual developers (Users in the diagram below) work directly with Kubernetes nodes, pods, and containers, just like they would in plain Kubernetes. The operator of the Kubernetes cluster uses the KaaS platform to manage clusters and pods at the required level of granularity.
In most KaaS deployments, teams define a set of pods the KaaS platform should manage. The managed service sets up a Kubernetes controller to oversee the labelled pods, and ensure the cluster is in the required state.
The KaaS platform runs replication controllers, deployment controllers, and other Kubernetes elements, which automatically create and replace pods as required by auto scaling policies.