☸️ 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
By default, everything can talk to everything
- Any Pod → Any Pod
- No restrictions
- Network Policies
- or enhanced CNI configuration