While you can always run your own Kubernetes Cluster in your private cloud, what other options are currently available to you in the public cloud market? Here are three possible options.
Our first is from Google and is called Google Kubernetes Engine (GKE). It’s not surprising that Google has a Kubernetes Cluster offering since bringing people to their public cloud was a reason behind the Open Sourcing of Kubernetes. GKE brings over 15 years of Google’s experience running containers to the public cloud market. The GKE runs Docker containers on the Google Cloud Platform which are managed by Kubernetes while your cluster is managed by Google’s Site Reliability Engineers(SREs) for you. Some of the features of the GKE include the following:
- Identity and Access Management to control access to the cluster utilizing Google accounts and role permissions.
- Hybrid networking so you can reserve an IP range for your cluster and allow your cluster IPs to run alongside private IP ranges using Google’s Cloud VPN.
- Integrated Logging and Monitoring gives you insight into your application and Resource Limits allow you to specify how much CPU and memory your containers might need so you can organize your workloads within your cluster.
- Auto Scale and Auto Repair keep your applications up and meeting your resource utilization needs on GKE, while Auto Upgrade allows you to use the latest release of Kubernetes available.
The next public cloud we’ll look at is the Managed Kubernetes for Azure Container Service (AKS), which is in the preview. With the addition of AKS to Azure’s Container Service, Azure is entering the Kubernetes market with a fully managed, easy to use container solution. While not many features of AKS are known, it works with Kubernetes APIs as well as Helm and will allow you to take advantage of Azure’s security and other features while also scaling and avoiding underlying infrastructure issues. Azure has other container related products on their roadmap to help make this option more robust in the future.
The last public cloud to have a Kubernetes offering that we will look at is Amazon Elastic Container Service for Kubernetes (EKS). Like GKE, it is a fully managed service. EKS takes advantage of AWS’s other cloud offerings and is based 100% on the upstream Kubernetes project. Some of EKS’s features are:
- Security utilizing other AWS services, such as IAM authentication, integrated with Kubernetes’s native role-based authentication through a solution provided by Heptio.
- With a solution provided by Tigera, you can integrate with AWS VPC security groups and network ACLs to control your networking policies and utilize the Kubernetes API. The last security measure supported is PrivateLink to access your EKS via private IPs.
- There are automated version upgrades available with the granularity to upgrade only the clusters you want to the latest Kubernetes version.
- EKS integrates with CloudWatch and CloudTrail for visibility and auditing history of your cluster and users.
- You can use tools and add-ons developed by the Kubernetes community.
There are also lesser known hosted Kubernetes solutions on public clouds. Platform9’s Managed Kubernetes is infrastructure agnostic and can be run across multiple public clouds or your own private cloud. Giant Swarm is another company offering a managed Kubernetes solution that can be run in their data center or on private or public clouds hosted elsewhere. The last turnkey product worth mentioning is Tectonic from CoreOS, which can run on either WS, Azure, or on your own infrastructure. Kubernetes can also be used in conjunction with several OpenStack projects, especially Magnum, to manage your container infrastructure.
As you can see, it’s getting easier to use Kubernetes whether you want it managed for you or if you want to manage it yourself. You can host it on a public cloud, on-premise, or both to meet your application and business needs.