EKS (Elastic Kubernetes Service) is AWS’s managed service for running Kubernetes clusters. Kubernetes is a platform for deploying, scaling, networking, and managing containers, while EKS provides the Kubernetes environment on AWS. The main building blocks you'll encounter in EKS are clusters, Pods, Deployments, and Services.
A Pod is the basic running unit in Kubernetes and can contain one or more containers. For example, a Pod could contain both a Node.js API container and a logging container. A Deployment defines the desired state of your application, such as keeping 3 identical Pods running, and handles replacing failed Pods and performing rolling updates. A Kubernetes Service has a different role: it provides a stable network endpoint for reaching the Pods and distributes traffic across them. EKS can run the Pods on EC2 instances or on AWS Fargate, where AWS manages the underlying servers.
Compared with ECS, the concepts are similar but the terminology and responsibilities differ. An ECS Task Definition is roughly analogous to a Kubernetes Pod specification, an ECS Task is roughly analogous to a Pod, and an ECS Service is roughly analogous to a Kubernetes Deployment because both maintain a desired number of running application instances. However, Kubernetes separates the Deployment (managing Pods) from the Service (providing stable networking), whereas ECS uses the ECS Service as the primary mechanism for maintaining Tasks and commonly works with AWS networking components to expose them.
