Using Amazon EKS, you can run Kubernetes on AWS without installing and operating your own control plane or worker nodes.
Kubernetes is an open-source container orchestration system that allows you to deploy and manage containerized applications. Kubernetes organizes containers into logical groups for management and discovery, then launches them onto Amazon Elastic Compute Cloud (Amazon EC2) instances. You can run containerized applications on premises and in the cloud using Kubernetes, including microservices, batch processing workers, and PaaS platforms.
EKS deploys the Kubernetes control plane, including the API servers and backend persistence layer, across multiple AWS Availability Zones (AZs) for high availability and fault tolerance. AWS EKS automatically detects and replaces unhealthy nodes in the control plane. AWS Fargate provides serverless compute for containers, so you can run EKS using it as part of a serverless computing setup. With AWS Fargate, there is no need to provision and manage servers, you can specify the resources for a given application and pay for them as needed, and the software enhances security through application isolation by design.
Amazon EKS is integrated with many AWS services to provide scalability and security for your applications. These services include Elastic Load Balancing for load distribution, AWS Identity and Access Management (IAM) for authentication, Amazon Virtual Private Cloud (VPC) for isolation, and AWS CloudTrail for logging.
Amazon EKS works by provisioning (starting) and managing the Kubernetes control plane and worker nodes for you. At a high level, Kubernetes consists of two major components: a cluster of ‘worker nodes’ running your containers, and the control plane managing when and where containers are started on your cluster while monitoring their status.
Without Amazon EKS, you have to run both the Kubernetes control plane and the cluster of worker nodes yourself. With Amazon EKS, you provision your worker nodes using a single command in the EKS console, command-line interface (CLI), or API. AWS handles provisioning, scaling, and managing the Kubernetes control plane in a highly available and secure configuration. This removes a significant operational burden and allows you to focus on building applications instead of managing AWS infrastructure.