Cloud & Virtualisation

Want to learn how to run containers on Amazon EKS?

Paul Thomas, Principal Technical Learning Specialist in AWS at QA, explains your options to run your containerised applications on Amazon AWS's Elastic Kubernetes Service (EKS).

Are you struggling with your decision to containerise applications? Here at QA we appreciate there are so many options to consider, for instance:

  1. You could use Docker and build and host your own systems.
  2. Or maybe you could consider another orchestrator and management platform that is growing in popularity. 
  3. Yet still, you may wish to run it on a cloud provider.

Let's say you opt for option 3: a cloud provider. The challenge then becomes finding a mature provider that is big enough to support, envisage and develop the platform offerings. You'd also have choices from building your own cluster (infrastructure as a service, or IaaS) to having the platform managed for you, or giving you the option to go serverless. This is where EKS takes centre stage!

What is Amazon EKS and what does it do?

EKS is a managed Kubernetes cluster on AWS. The control plane that runs the etcd database, API server, controllers and schedulers are managed for you. Key services are spread across multiple availability zones to provide redundancy in case of an outage. Provisioning is made easy: AWS EKS CLI, eksctl (instead of kubeadm) or, of course, CloudFormation, among others.

Do your container pods need nodes? Think nodegroups

You have now opted to run your services on AWS, but your containers are deployed as pods, and your pods need nodes to run on... How do you provision your pods?

Well, you can always go old school and provision the nodes yourself. However, you may want these nodes to be managed – and that's where nodegroups come to the rescue! These managed nodes can easily scale to meet your demand with the advantage that these are managed Elastic Compute Clouds (EC2s).

Serverless is growing in popularity as it removes the decision-making from designing, provisioning and managing nodes. AWS Fargate, now in EKS, provides this capability. Once you have the nodes, you can start to deploy these pods. 

Furthermore, taints, tolerances, labels and more can be used to control the deployment of pods onto the nodes and schedule onto specific nodes for special use cases – maybe certain pods need GPU capability on the underlying node.

If you are considering running Kubernetes on the AWS cloud platform and want a better insight into the offering, or need to manage an existing EKS cluster, then the Running Containers on Amazon Elastic Kubernetes Service (Amazon EKS) course could be for you. The course also covers the provisioning and administration of the EKS cluster (as mentioned above) and other options to be used with Kubernetes, such as Prometheus, Helm, fluent and so on, as well as tying all of this into a CI/CD pipeline.

To get more detail on what is covered in the course, please watch my latest webinar recording: An Introduction to Running Containers on Elastic Kubernetes Service.

Also read our blog Kubernetes Certifications: QA's New Cloud Native Courses by Daniel Ives.

Click here to see QA's AWS courses