6 ways to run Kubernetes in the Cloud
by Bas Tichelaar
16 April, 2018 - 5 minute read
Until a few months ago, your best (and probably only) option to run Kubernetes in the cloud was Google Kubernetes Engine (GKE). But things have changed, and there are a lot of viable alternatives. Let’s compare these offerings and see what’s the best solution for you.
Google Kubernetes Engine (GKE)
Google was the first to offer a hosted version of Kubernetes. This makes sense, as Google created Kubernetes, based on their internal scheduler called Borg. Google Kubernetes Engine (GKE) enables you to manage your Kubernetes cluster from the Google Cloud console. Creating, upgrading and deleting clusters is really easy and fast. The webinterface is still pretty minimal, but Google adds new features every day.
If you are already using the Google Cloud Platform, or you just want to run a reliable, fast Kubernetes cluster, then GKE is your best option.
Tectonic by CoreOS
CoreOS, the company behind Tectonic which was recently acquired by Red Hat, was originally known for their container OS. Besides the operating system, CoreOS developed lots of tools that make running containers easier and scalable. Tectonic is the enterprise ready container platform, combining Kubernetes and CoreOS stack. It adds enterprise features like SSO, a secure container registry (Quay) and a management interface. It even adds Prometheus as an integrated monitoring solution.
If you want to run a solid Kubernetes cluster on your own hardware without having to manage the lifecycle of your nodes, Tectonic is your way to go.
Azure Container Service (AKS) by Microsoft Azure
Microsoft originally started with Azure Container Service (ACS), but is ramping up its Kubernetes offerings. Recently Azure Kubernetes Service (AKS) was added, a dedicated Kubernetes offering within Azure. Within ACS, Kubernetes only was one platform option. You could easily swap to Docker or Mesosphere DC/OS. There are several signals that Microsoft decided that Kubernetes is here to stay: Last year, Microsoft acquired Deis, a workflow solution for Kubernetes, and the new AKS focuses on providing the best Kubernetes experience.
If you are already using Azure, then of course AKS is your best option. And it must be said, it is impressive how fast Microsoft develops new cloud features on Azure!
OpenShift by Red Hat
Red Hat was one of the first providers to offer a hosted container service. With the new version of OpenShift, Red Hat decided to go all-in on Kubernetes. OpenShift is different from the other providers mentioned in this post. Instead of offering a vanilla version of Kubernetes, Red Hat developed their own abstraction layer. This layer adds functionality like image templates, a standard development workflow and integrated Continuous Integration based on Jenkins.
If you are looking for a full development platform that streamlines your whole development workflow, then you should check out OpenShift. You will like what you see! Try OpenShift on Instruqt to learn more.
Rancher 2.0 by Rancher
Originally known for its lightweight container OS, RancherLabs is also going all-in on Kubernetes. Rancher 2.0 is fully focused on Kubernetes and adds Rancher’s own management layer and catalog on top. The Rancher server itself runs the Kubernetes master. The webinterface makes it easy to add more nodes on various platforms like AWS and GCE. You can add your own servers to the cluster as well.
If you are looking to manage multiple Kubernetes clusters across a variety of providers, then Rancher is your best choice. If you would like to play around with Rancher, try it on Instruqt!
EKS (Elastic Container Service for Kubernetes) by Amazon Web Services
It’s still in preview, but Amazon also jumped on the Kubernetes train with Elastic Container Service for Kubernetes (EKS). We haven’t had the chance to play with it, but it might be a good solution if you’re already invested in AWS. ECS was not on par with Kubernetes as it was just a simple scheduler.
When EKS is out of preview or when we get our hands on it, we will post a more in-depth review.
Do it Yourself
There are always reasons to deploy your own Kubernetes cluster. And it’s simpler than you might think. The community is working hard to make it easy to create and manage your own cluster. These tools are your best bet:
- kops, short for Kubernetes Operations, is a tool that allows you to easily create and maintain Kubernetes clusters on AWS. VMware support is in alpha!
- kubeadm, included with Kubernetes, can create Kubernetes clusters on your on-premise hardware. This is the recommended way to install Kubernetes on your own hardware.
- Kubernetes from Scratch is only recommended when you need a custom cluster. But the advantage is that you can customize everything.
- Minikube is a local version of Kubernetes. It uses Virtualbox to spin up a virtual machine containing a fully functioning Kubernetes cluster. If you only want to run Kubernetes locally, use Minikube.
Each provider has its own benefits. It all depends on your requirements. But running Kubernetes is not difficult anymore if you go for any of the mentioned cloud providers. At Instruqt, we chose GKE, as we already used the Google Cloud Platform. And we’re really happy with our choice. Our clusters are set to auto-scale based on demand, and they will upgrade automatically when a new version of Kubernetes is released.
If you want to try out Kubernetes yourself, go to the platform and create an account. Within minutes, you can play around with your own Kubernetes instance. Let us know what you think of Instruqt!