Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. Google developed it and is now maintained by the Cloud Native Computing Foundation (CNCF). Kubernetes has been designed to provide a platform that lets you simply define your application’s architecture as code.
Recently, AWS announced support for Kubernetes on its Elastic Container Service (ECS) with EC2 Instances running Linux containers. This means customers can take advantage of the simplicity of ECS while still being able to run their workloads on a familiar Linux environment within their existing AWS account.
Kubernetes on AWS: What are the Options?
Kubernetes is an open-source container orchestrator that has been gaining a lot of popularity among developers. Unfortunately, it is not supported natively on AWS, but there are two options to run Kubernetes on AWS in an EC-based environment:
There are several tools for running Kubernetes on ECS, such as KubeFlow and Kuber. However, these solutions need you to deploy their agents onto your instances which requires modifying the existing AMI or building your custom image with preinstalled dependencies. These management services also require additional maintenance fees and hosting costs per hour based on usage.
Kubernetes can also run natively on AWS without the need for an agent. This allows you to run Kubernetes and docker daemon directly on your ECs, which provides a lighter solution managed entirely by AWS. In addition, it does not require any additional cost once setup, and all Kube components are deployed as containers within ECS, so no extra hosting costs apply either.
Kubernetes on AWS with Platform Elastigroup by Upbound
Upbound’s platform enables customers to run containerized across any infrastructure, including public cloud, private cloud, and bare metal.
Weave Scope provides a unique way to monitor your Kubernetes cluster by showing you the network view of all pods in a single pane of glass which allows you to drill down from high-level metrics such as CPU usage per pod or number of active requests on each service directly into detailed logs for any container within that group with full search capabilities across containers and hosts. In addition, Weave Scope integrates with the ELK stack allowing users to take advantage of their familiar query language (ELK) queries when looking for specific information about their system.
Creating a Kubernetes Cluster on AWS with kops
Kops is a production-ready command-line tool that can be used to create and delete Kubernetes clusters on any major cloud provider. It utilizes the same configuration as kubectl provided via ‘kubeconfig’
by running: $ kops create a cluster –name my-cluster
The above command will deploy all required ECS instances, load balancer with ELB setup across multiple availability zones (AZs). The next step is creating an auto-scaling group for your nodes, so they are added or removed from your environment based on the utilization of CPU & Memory defined in CloudWatch Alarms you created earlier. Kops supports using AWS autoscaling groups and spot requests out of the box, which means no additional cost for your ELB or EC instances.
Creating a Kubernetes Cluster with Elastic Kubernetes Service
If you are looking for a fully managed Kubernetes solution, then EKS is the way to go. It provides easy and secure access with role-based authentication using certificates that can be easily deployed into your existing IAM policy without any additional cost on top of running Kubernetes on EC instances. In addition, setup takes just a few minutes as it has been designed to work seamlessly with Elastic Load Balancer (ELB).
The above examples cover all major ways of deploying Kubernetes clusters in production. Still, there may be scenarios where you need to hire react developer or have more control over how resources are provisioned or would like to integrate with other products such as Weaveworks Flux. In those cases, we recommend trying Upbound’s Managed Kubernetes product.
All three options above provide users with different capabilities depending on their requirements. Both Weave Scope & Kops are lightweight solutions that do not require any additional cost once set up. They remain budget-friendly for development teams looking to test out Kubernetes locally before committing resources to it. Kops provides users with high availability clusters out of the box, which is ideal for production environments but can also run development & test clusters depending on the team’s resources and requirements.