Amazon Elastic Kubernetes Service (Amazon EKS) is a fully managed Kubernetes service. Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications. Amazon EKS runs Kubernetes control plane instances across multiple Availability Zones to ensure high availability. Amazon EKS automatically detects and replaces unhealthy control plane instances, and it provides […]
Kubernetes vs Docker
What is elastic Kubernetes service?
Kubernetes is open source software that allows customers to deploy and manage containerized applications at scale. Kubernetes groups containers into logical groupings for management and discoverability, then launches them onto clusters of EC2 instances. Using Kubernetes customers can run containerized applications including microservices, batch processing workers, and platforms as a service (PaaS) using the same tool set on premises and in the cloud.
What is Docker
Docker is a software platform that allows customers to build, test, and deploy applications quickly. Docker packages software into standardized units called containers that have everything the software needs to run including libraries, system tools, code, and runtime. Using Docker, AWS customers can quickly deploy and scale applications into any environment and know their code will run.
Running Docker on AWS provides developers and admins a highly reliable, low-cost way to build, ship, and run distributed applications at any scale. AWS supports both Docker licensing models: open source Docker Community Edition (CE) and subscription-based Docker Enterprise Edition (EE).
Why do we need Kubernetes?
Kubernetes provisions and scales the the control plane, including the API servers and back end persistence layer, across multiple AWS availability zones for high availability and fault tolerance. Amazon EKS automatically detects and replaces unhealthy control plane nodes and provides patching for the control plane. Customers can run EKS using AWS Fargate, which is serverless compute for containers. Fargate removes the need to provision and manage servers, lets them specify and pay for resources per application, and improves 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, IAM for authentication, Amazon VPC for isolation, and AWS CloudTrail for logging.
How does Amazon EKS work?
Amazon EKS works by provisioning (starting) and managing the Kubernetes control plane and worker nodes for customers. At a high level, Kubernetes consists of two major components – a cluster of ‘worker nodes’ that run customers containers and the control plane that manages when and where containers are started on their cluster and monitors their status.
Without Amazon EKS, customers have to run both the Kubernetes control plane and the cluster of worker nodes themselves. With Amazon EKS, customers provision their worker nodes using a single command in the EKS console, CLI, or API, and AWS handles provisioning, scaling, and managing the Kubernetes control plane in a highly available and secure configuration. This removes a significant operational burden for running Kubernetes and allows customers to focus on building applications instead of managing AWS infrastructure.