Kubernetes is a flexible, scalable, and open-sourced platform for containerized applications and associated services orchestration, making it easier to configure and automate the application development process. Known as a large and rapidly growing ecosystem, Kubernetes provides extensive support for a variety of services and tools.
The name Kubernetes comes from the Greek word for helmsman/pilot. Kubernetes was released to the public in 2014 by Google, based on Google’s recent decade of real-world workload management experience, combined with ideas and best practices from the community.
Containers are a convenient way for you to contribute and run applications. In a production environment, there needs to be an efficient mechanism for managing containers, ensuring no downtime. Kubernetes helps manage powerful distributed systems, automates scaling, provides declarative development patterns, and much more.
Kubernetes provides:
Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that eliminates the need to install, operate, and maintain your own Kubernetes control plane on Amazon Web Services (AWS).
A few key features of Amazon EKS can be listed, such as:
Amazon EKS integrates your Kubernetes workloads with AWS networking and security services. It also integrates with AWS Identity and Access Management (IAM) to provide authentication for your Kubernetes clusters.
Amazon EKS enables you to scale your Kubernetes clusters up and down easily based on the demand of your workloads. Amazon EKS supports horizontal Pod autoscaling based on CPU or custom metrics, and cluster autoscaling based on the demand of the entire workload.
You can make changes to your Kubernetes clusters using eksctl, AWS Management Console, AWS Command Line Interface (AWS CLI), the API, kubectl, and Terraform.
Amazon EKS provides high availability for your control plane across multiple Availability Zones.
Amazon EKS integrates with other AWS services, providing a comprehensive platform for deploying and managing your containerized applications. You can also more easily troubleshoot your Kubernetes workloads with various observability tools.
In this introductory part, we will provide an overview of a few Kubernete concepts (manual scheduling, labels and selectors, taints and tolerations, affinty,…) and EKS computing resources (managed node groups, graviton instances, spot instances, Fargate). We advise you to read through this part before doing the exercises in the lab.