What Is Kubernetes, and Why Is It Hard to Run?
Kubernetes is a system that manages containerized applications across a cluster of machines. Think of it like an air traffic control system: it decides which plane (container) lands on which runway (server), reroutes traffic when a runway is closed, and ensures the right number of flights are in the air at all times. Running Kubernetes yourself means you are also responsible for building and maintaining the control tower — and if the control tower fails, everything stops.
The Hard Way vs. The EKS Way
If you install Kubernetes (K8s) yourself ("The Hard Way"), you are responsible for both the Control Plane (the brain) and the Data Plane (the muscle).
- If the Control Plane crashes (e.g., etcd corruption), your cluster dies.
- If you need to upgrade, you must manually patch the API servers, etcd, and controller managers — in the right order, without downtime.
- You are responsible for HA, backups, certificates, and audit logging.
Amazon EKS (Elastic Kubernetes Service) removes the "brain" responsibility entirely.
- AWS manages: The Control Plane — the API Server, Controller Manager, Scheduler, and etcd. It is highly available, patched automatically, and exposed behind a managed load balancer endpoint.
- You manage: The Data Plane — Worker Nodes. These are EC2 instances (or Fargate tasks) that run your actual containers.
The Trade-off
Because EKS is deeply integrated into AWS, it steers you toward AWS-native constructs for every layer of the stack:
- Networking: Pods use real VPC IPs (via the VPC CNI plugin).
- Security: Pods use IAM Roles (via OIDC/IRSA).
- Load Balancing: Ingress uses ALBs or NLBs (via the AWS Load Balancer Controller).
- Storage: Persistent volumes use EBS or EFS (via CSI drivers).
This integration is a strength — you get native AWS observability, security, and billing — but it also means your cluster configuration is less portable than a self-managed cluster running on generic infrastructure.
Interviewers frequently ask: "What does EKS actually manage vs. what do you manage?" The precise answer is: AWS manages the Control Plane (API server, etcd, controller manager, scheduler) across multiple AZs. You manage the Data Plane — the worker nodes, their OS patches, instance types, and scaling. A common mistake is saying "EKS manages everything" — it does not manage your nodes unless you explicitly use Managed Node Groups or Fargate.