Running Kubernetes on AWS

Running Kubernetes on AWS

As a container orchestration system, Kubernetes can be used to deploy multiple containers applications across multiple hosts while providing several benefits, enabling cluster management, auto-scaling, service discovery, auto-healing, and so on. As such, it is an ideal orchestration tool to use in an AWS environment.

Using Kubernetes with AWS has a learning curve, so here are some ideas for using Kubernetes on AWS:

Kubernetes with Kops

Kubernetes Operations, or Kops for short, is a collection of tools you can use to install, manage, and delete production Kubernetes clusters on the AWS cloud. You can also manage cluster add-ons and upgrade the current version of Kubernetes to a newer one.

AWS Kops installation is fully automated. It uses DNS to identify clusters, can self-heal, has a high-availability support, and can provision or create terraform manifests.

There are several steps needed to install and run Kops and they are detailed here. Basically, it would include downloading kops and kubectl, providing the right permissions for the IAM user, configuring the S3 bucket for state store and the domain, then finally, creating, managing and deleting the Kubernetes cluster.

An alternative to Kops would be kube-aws. When it comes to kops vs. kube-aws, please note that kube-aws has certain limitations. For instance, it is locked into using services like CloudFormation and Container Linux, while Kops is not. Kops also supports running Debian, Ubuntu, CentOS, and RHEL in AWS.

Kubernetes with CoreOS-Tectonic

You can also install and run a cluster through CoreOS-Tectonic. Tectonic comes with its own installer that lets you install a highly-available Kubernetes cluster.

Tectonic provides an operator, which is a controller that lets you extend the Kuber API to generate and manage instances of complex stateful applications for a Kubernetes user. It also provides a console where you can view and deploy applications.  Finally, Tectonic also monitors CPU usage and other metrics while providing up-to-date patches and fixes for clusters.

The full tutorial on running CoreOs-Tectonic can be found here. It is much like installing with Kops, only you download the CoreOS-Tectonic installer instead.

Kubernetes CloudFormation

Another option is to install Kubernetes clusters using CloudFormation and CoreOS. That said, this method is still in beta status due to certain components listed as not yet open-sourced: Cluster Registry, Cluster Life Cycle Manager, and Authnz Webhook. These are slated to be available this 4th quarter of 2017.

You can find a short guide to running Kubernetes on AWS in a production environment here, and a complete list of additional Kubernetes AWS tutorials here. And if you would like to gain the benefits of an AWS-managed Kubernetes, read about PolarSeven AWS-Kubernetes experts.