What’s Inside EKS? A Beginner’s Guide to Its Core Components

 EKS (Elastic Kubernetes Service)

EKS is a managed service by AWS that runs Kubernetes for you. It takes care of setting up and managing the Kubernetes control plane so you can focus on running your applications.

Kubernetes 

Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications.
It helps run apps reliably across a cluster of machines, automatically handling scheduling, scaling, updates, and recovery.

Pod

A Pod is the smallest unit in Kubernetes.
It can hold one or more containers that share the same network and storage.
All containers in a pod are scheduled and managed together.



Container

A Container is a lightweight, standalone package that includes everything an app needs to run — code, runtime, libraries, and dependencies.
It ensures the app runs the same no matter where it’s deployed.

👀1 pod can have multiple containers but 1 container cannot belongs to multiple pods.

EKS Worker Nodes and the Control Plane

EKS Control Plane (Managed by AWS)

The Control Plane is the brain of the Kubernetes cluster.

It makes decisions like:
Where to run your apps (pods)
When to scale up or down
How to restart failed pods
Managing cluster state

In EKS, AWS manages the control plane for you:
 No need to install or manage Kubernetes master.
• AWS handles upgrades, availability, and fault tolerance
It includes components like API server, scheduler, controller manager, and etcd (the database)

Key Components:

1. API Server

The entry point for all commands and communication
kubectl, dashboard, and other tools talk to the cluster via the API Server

2. Controller Manager

Watches the cluster state and makes sure it matches the desired state
For example: if you say you want 3 pods, but 1 crashed, it tells Kubernetes to create 1 more

3. Scheduler

Assigns pods to worker nodes based on resource availability and rules
Decides where each pod should run

4. etcd

A distributed key-value database
Stores the entire cluster state (pods, nodes, secrets, configs)


Worker Nodes (Managed by You or AWS)

Worker Nodes are the machines (EC2 instances or Fargate tasks) that actually run your application pods.

Each node includes:

The Kubelet (agent that talks to the control plane)
A container runtime (like containerd)
Your pods and containers


Key Components:

1. Kubelet

Agent that runs on each node
Talks to the API Server
Makes sure the containers described in a pod are running


2. Kube Proxy

Handles networking inside the cluster

Helps expose services and enables pod-to-pod communication

3. Container Runtime

The actual software that runs your containers

EKS typically uses containerd (replaces Docker)

In EKS, you can choose:

 Managed Node Groups (AWS manages the lifecycle of EC2 nodes)

Self-managed nodes (you create and manage EC2 instances manually)

AWS Fargate (no nodes at all — serverless pods)



The control plane tells the worker nodes what to run and monitors how they’re doing

Cluster Addons:

CoreDNS:

 Doesn’t make decisions like the scheduler or controller

 It runs as a pod on worker nodes

 It handles service discovery (i.e., DNS resolution so pods can find each other


Summary!


Comments

Popular posts from this blog

Aurora MySQL Default Authentication Plugin,mysql_native_password,

My First Cruise to the Bahamas: What to Pack & What to Expect – A 4-Night Adventure!