☸️ EKS Add-ons Explained Through Real Traffic Flow

EKS Add-ons Explained Through Real Traffic Flow

In AWS EKS, Kubernetes doesn’t run in isolation.

It depends on a set of add-ons to handle:

  • networking
  • DNS
  • routing
  • storage
  • external traffic

Instead of memorizing each component separately, the easiest way to understand them is:

馃憠 Follow a request as it flows through the system

Flow 1: External Request → Your Application

Let’s say a user opens your app in the browser.

Step 1: Internet → Load Balancer

https://your-app.com

This hits an AWS Application Load Balancer (ALB). Created by: AWS Load Balancer Controller

Step 2: ALB → Kubernetes Ingress

Ingress → Service

The ALB routes the request based on rules defined in your Ingress.

Step 3: Service → Pod (kube-proxy)

Kubernetes needs to pick a Pod. This is handled by kube-proxy

  • receives the request
  • selects a Pod
  • routes traffic using iptables/IPVS

Step 4: Pod Receives Traffic (VPC CNI)

The Pod already has a real VPC IP address, assigned by VPC CNI.

ALB → Node → Pod IP (inside VPC)

Summary of Flow 1

Internet
   ↓
ALB (Load Balancer Controller)
   ↓
Ingress
   ↓
Service
   ↓
kube-proxy
   ↓
Pod (VPC CNI IP)

Flow 2: Service-to-Service Communication

Now imagine one service calling another.

order-service → review-service

Step 1: Service Name Lookup (CoreDNS)

review-service.default.svc.cluster.local

CoreDNS resolves this into a ClusterIP

Step 2: Routing (kube-proxy)

kube-proxy routes traffic to one of the Pods

Step 3: Networking (VPC CNI)

Pod → Pod (via VPC network)

Summary of Flow 2

Pod
 ↓
CoreDNS (name → IP)
 ↓
Service IP
 ↓
kube-proxy
 ↓
Target Pod (VPC CNI networking)

Flow 3: Storage Attachment

Now consider a database Pod.

Step 1: Pod Requests Storage

A Pod uses a Persistent Volume Claim (PVC)

Step 2: CSI Driver Creates Volume

  • EBS CSI Driver (single Pod storage)
  • EFS CSI Driver (shared storage)

Step 3: Volume Attached to Pod

/data → EBS/EFS

Summary of Flow 3

Pod
 ↓
PVC
 ↓
CSI Driver
 ↓
EBS / EFS Volume
 ↓
Mounted inside Pod

⚠️ Important Insight

Even with all these flows working:

By default, everything can talk to everything
  • Any Pod → Any Pod
  • No restrictions
To fix this, you need:
  • Network Policies
  • or enhanced CNI configuration

Popular posts from this blog

☁️ AWS Global Accelerator (GA) + Route 53

馃惓 Docker Filesystem Internals (AdvancEd)

Understanding RabbitMQ Classic Mirrored Queues and Quorum Queues

馃惓 Docker Tutorial for Beginners: Step-by-Step with a Simple Example

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

☸️ Kubernetes Taints and Tolerations(with Node Affinity)

AWS Load Balancer Controller Upgrade Guide: v2.x to v3.3

馃惓 Build a Tiny Flask Web App in Docker (with Ports)

☁️ Amazon S3 Explained: More Than Just Object Storage

☸️ CoreDNS and AWS VPC CNI in EKS