Kubernetes management services are proliferating faster than ever before, competing intensely on price, scaling, cluster availability, server size and other features.
While Google, Azure and Amazon have so far emerged as the top competitors, there are several other players like IBM Cloud and Alibaba that have also entered the field. There are also a number of other smaller companies moving in for their own slice of market share.
Here’s an overview of the top managed Kubernetes solutions available today, including upsides and drawbacks of each.
Google Kubernetes Engine (GKE)
Offering master nodes for free, GKE is the most affordable managed Kubernetes solution on the market right now. It supports multiple availability zones (AZs) and provides both automatic and on-demand upgrades. Its CLI makes creating or deleting a cluster as simple as running a command – and it also offers a GUI for more in-depth configuration.
In terms of availability, GKE provides two different modes: multi-zonal mode, in which one master node can be connected to multiple worker nodes, and regional mode, in which the master nodes are distributed across all zones.
GKE’s UI makes it easy to scale up individual nodes – and to add “node pools,” which allow multiple types of machines to join the same worker pool. Setting up a node pool in GKE is a simple one-step process. The Cluster Autoscaler can also be used to automatically scale nodes up or down in response to changes in workload. A GKE add-on worth noting is Calico, a network plugin that allows definition of network policies for communication between pods.
Azure Kubernetes Service (AKS)
AKS is also offering free master nodes in order to stay competitive with GKE, charging only for worker nodes. Unlike GKE, though, AKS offers only a minimal GUI, whose functionality is essentially the same as that of the CLI. It also doesn’t provide high availability for master nodes, although worker nodes can be used to provide high availability for specific zones.
While AKS does make it easy to scale up nodes, it doesn’t provide any equivalent to node pools. This means you’re limited to scaling up to similar nodes, instead of having the flexibility to create a single node for multiple machine types.
AKS’s kube-router add-on, which has to be installed manually, enables control of network policies, similar to what GKE’s Calico plugin does. Another helpful feature of AKS is its service catalog, which enables a client to request Azure services for applications running on a cluster. And with the virtual-kubelet plugin, it’s possible to back pods with a CaaS service instead of a VM.
Amazon Elastic Kubernetes Service (EKS)
With a price tag of $135 per month, EKS runs toward the pricey end of the spectrum. This service provides many of the same features as GKE and AKS – including a CLI as well as a UI. But in contrast to the simple on-boarding of GKE and AKS, EKS requires several configuration steps, including using kubectl to connect the worker nodes to the cluster. The good news is that the community has developed tools like eksctl, which streamline many aspects of the setup process.
Like in GKE’s regional mode, EKS provides high availability by distributing its master and worker nodes across multiple availability zones. Although EKS does allow the creation of nodepools, this requires a few steps, including connecting each of the nodepools to a cluster.
IBM structures its pricing somewhat differently from other services, providing the option for a free cluster with one worker node that has 2CPU and 4GB RAM. One you upgrade your payment plan prices range from $0.114 to $2.40 per instance-hour for shared resources, $0.341 to $3.37 per instance-hour for dedicated resourced, and from $768 to $3,030 per instance per month for bare metal GPUs. The service provides a CLI as well as a GUI, and makes setup a simple multi-step process.
IBM Cloud provides several possible ways to approach high availability for clusters. You can set up high availability for a master node or for individual worker nodes, across multiple availability zones. While IBM doesn’t provide any equivalent of GKE’s node pools, its upscaling process is straightforward, as long as you’re only scaling up nodes with the same type of machine.
Alibaba doesn’t publicly share any pricing information, which makes it tricky to know exactly how the value stacks up against other services. With a CLI as well as a GUI, this service makes setup of clusters and nodes fairly simple, handling details like ECS instances and security groups automatically.
One significant downside of Alibaba’s service is that it doesn’t offer a managed master node. This means you’ll be configuring your master manually, which adds complexity to the setup process. On the other hand, Alibaba provides great auto scaling functionality, allowing users to define rules for automatic cluster creation and resource provisioning.
A number of additional managed Kubernetes solutions are coming down the pipe right now. Digital Ocean recently announced the launch of their own Kubernetes platform, building on their existing suite of load balancers, cloud firewalls, CPU-optimized droplets and other primitives.
Oracle has also launched its own managed Kubernetes Cloud Service, OKE (Oracle Kubernetes Engine). While this service isn’t publicly available yet, early reviews are praising its identity and access management (IAM), auto-scaling and load balancing features.
While it is great seeing the major providers out there creating Kubernetes centric solutions, it also comes with drawbacks. The first and most obvious is the age old concept of provider lock in. No matter which way you slice it, no provider is interested in having you move your workloads from their service to another.
What if there was a solution that worked with all providers just the same? Giving you the freedom to pick and chose where your workloads live and you pay the standard price for VMs? What if you wanted to manage your master nodes, or multi master was not necessary for what you are trying to accomplish. What if you wanted to have clusters on multiple clouds? This is where Containership Cloud comes to the rescue. Kubernetes anywhere, everywhere, period.