Amazon EKS is the standard for running production Kubernetes on AWS, but its architecture is often misunderstood. This guide provides a complete reference for the EKS architecture—control plane, worker nodes, VPC networking, IAM, and the integrations that make it work—so you can design, deploy, and operate clusters that are secure, scalable, and maintainable.
Cloud Architecture
Create cloud architecture diagrams for AWS, Azure, GCP, and more. Design scalable infrastructure with professional cloud icons.
Complete guide to Amazon EKS architecture—control plane, worker nodes, VPC networking, IAM/IRSA, storage, scaling, and production best practices.
Click Cloud Architecture to open AI Line Studio and generate diagrams from natural language in seconds.
Amazon Elastic Kubernetes Service (EKS) is a fully managed Kubernetes service that simplifies running Kubernetes on AWS without needing to install or operate your own control plane. AWS manages the Kubernetes control plane across multiple Availability Zones for high availability, while you manage the worker nodes that run your workloads.
EKS provides deep integration with AWS services including IAM, VPC, security groups, and load balancers, making it the preferred choice for organizations that want to run Kubernetes with AWS-native capabilities.
At the highest level, an EKS cluster consists of two major layers:
Both layers operate inside your VPC, communicate via the AWS VPC CNI plugin, and are secured through IAM roles and Kubernetes RBAC.
┌─────────────────────────────────────────────────────────────────────────────┐
│ AWS Managed Control Plane │
│ ┌───────────────────────────────────────────────────────────────────────┐ │
│ │ • API Server (Public + Private Endpoints) │ │
│ │ • etcd (Multi-AZ replicated) │ │
│ │ • Scheduler │ │
│ │ • Controller Manager │ │
│ │ • Cloud Controller Manager (AWS integrations) │ │
│ └───────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ Secure ENI Connection (cross-account) │
│ ▼ │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Your VPC │
│ ┌───────────────────────────────────────────────────────────────────────┐ │
│ │ Public Subnets (ALB, NAT Gateways) │ │
│ └───────────────────────────────────────────────────────────────────────┘ │
│ ┌───────────────────────────────────────────────────────────────────────┐ │
│ │ Private Subnets (Worker Nodes) │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Worker Node │ │ Worker Node │ │ Worker Node │ │ │
│ │ │ (EC2) │ │ (EC2) │ │ (EC2) │ │ │
│ │ │ ┌───────┐ │ │ ┌───────┐ │ │ ┌───────┐ │ │ │
│ │ │ │ Pod A │ │ │ │ Pod B │ │ │ │ Pod C │ │ │ │
│ │ │ └───────┘ │ │ └───────┘ │ │ └───────┘ │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └───────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────────────────┐ │
│ │ Data Plane Services │ │
│ │ • Amazon EBS (persistent volumes) • Amazon EFS (shared storage) │ │
│ │ • Amazon S3 (object storage) • Amazon RDS (databases) │ │
│ └───────────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
The EKS control plane is the brain of your Kubernetes cluster, entirely managed by AWS. It runs across three Availability Zones by default, providing automatic high availability.
Kubernetes API Server – The only entry point for all cluster operations. Handles kubectl requests, scheduling instructions, and cluster state changes. API server endpoints are behind a Network Load Balancer.
etcd – A highly available, multi-AZ replicated key-value store that holds all cluster state: pod configs, secrets, services, and deployment metadata. EKS provides a managed etcd that is automatically replicated across three AZs.
Scheduler – Places pods on available worker nodes based on capacity, taints/tolerations, and affinity rules.
Controller Manager – Runs controllers that manage deployments, replicas, node lifecycle, and service endpoints.
Cloud Controller Manager – Integrates with AWS services like ELB, EBS, and IAM.
AWS manages the control plane entirely—you cannot SSH into it or modify it directly. AWS handles version upgrades, patching, availability, and scalability. What you control:
During control plane scaling or patching, API server IPs can change (DNS TTL is 60s). Kubernetes API consumers should implement DNS re-resolution and retries with backoff and jitter for transient failures.
Worker nodes run your actual application workloads. EKS supports three primary options for worker nodes:
AWS manages the EC2 instances in an Auto Scaling group, including AMI updates and node health. This is the recommended approach for most production workloads.
Best for: Stable, predictable workloads where you want AWS to handle node lifecycle management.
An open-source, flexible Kubernetes-native cluster autoscaler that provisions nodes dynamically based on pod scheduling requirements. Launches instances directly, with fast scaling and native Spot support.
Best for: Dynamic, varied workloads requiring fast, flexible scaling.
Serverless compute for Kubernetes. Each pod runs in its own isolated environment with per-pod billing and no infrastructure management.
Best for: Batch workloads, low-density workloads, and teams that want to eliminate node management entirely.
The newest option where AWS fully manages the node lifecycle—provisioning, scaling, OS updates, and security patches.
Best for: Teams that want minimal operational overhead for standard workloads.
You deploy and manage your own EC2 Auto Scaling groups and AMIs.
Best for: Custom AMI/kernel requirements or specialized use cases.
Each worker node runs:
All EKS resources are deployed in a VPC within your AWS account. The VPC and subnets must be tagged appropriately so Kubernetes can use them for deploying resources like load balancers.
A standard production EKS architecture distributes subnets across three Availability Zones:
Each pod receives an IP address from your VPC subnet via an Elastic Network Interface (ENI). This provides:
When you create a cluster, Amazon EKS creates a security group associated with both the cluster endpoint and all managed nodes. Additional security groups control inbound/outbound traffic.
The control plane and worker nodes must be able to communicate over all ports through appropriately tagged security groups.
EKS automatically provisions load balancers for services:
EKS integrates IAM roles with Kubernetes service accounts via IRSA (IAM Roles for Service Accounts). This allows pods to assume IAM roles and access AWS services with least-privilege permissions.
| Layer | Purpose |
|---|---|
| IAM | Map IAM roles to Kubernetes service accounts |
| RBAC | Control pod-level and API access |
| Secrets Manager | Store sensitive configuration |
| Pod Security Policies / OPA | Restrict container capabilities |
| KMS | Encrypt Kubernetes secrets at rest |
For production, AWS recommends private-only or private + public endpoint access. Public-only is not recommended for production environments.
Pods are ephemeral—stateful applications require persistent storage.
| Storage Type | Use Case |
|---|---|
| Amazon EBS | Block storage, per-node, zonal |
| Amazon EFS | Shared file storage, multi-AZ |
| Amazon FSx | High-performance file systems |
| Amazon S3 | Object storage for backups, artifacts, logs |
| Service | Purpose |
|---|---|
| Amazon CloudWatch | Centralized logging and metrics |
| Container Insights | Pod, node, and cluster metrics |
| Prometheus + Grafana | Open-source monitoring stack |
| AWS X-Ray | Distributed tracing for microservices |
| Scaling Type | Managed By | Purpose |
|---|---|---|
| Cluster Autoscaler | Kubernetes | Adds/removes EC2 worker nodes |
| Horizontal Pod Autoscaler (HPA) | Kubernetes | Scales pods based on CPU/memory |
| Vertical Pod Autoscaler (VPA) | Kubernetes | Adjusts pod resource requests |
| Model | Operational Overhead | Use When |
|---|---|---|
| EKS Standard | Medium-High | Need full customization |
| EKS Auto Mode | Low | Want minimal ops for standard workloads |
| EKS with Fargate | Low | Batch, low-density workloads |
| EKS on Outposts | High | Data residency, low-latency edge |
| EKS Anywhere | Highest | Air-gapped, custom hardware |
timeoutSeconds < 30 for webhooksImplement network segmentation and tenant isolation using network policies. Network policies are similar to AWS security groups—you create ingress and egress rules and assign them to pods using pod selectors and labels.
| Requirement | EKS | ECS | Lambda |
|---|---|---|---|
| Kubernetes ecosystem | ✅ Native K8s | ❌ AWS-proprietary | ❌ |
| Portable across clouds | ✅ Standard K8s API | ❌ AWS-only | ❌ AWS-only |
| Long-running services | ✅ | ✅ | ⚠️ 15 min limit |
| Minimal ops overhead | Medium | Low | Lowest |
| GPU/ML workloads | ✅ Best support | Limited | ❌ |
| Complex networking | ✅ Full control | Medium | Limited |
| Team has K8s expertise | Required | Not required | Not required |
You can create professional EKS architecture diagrams using:
Manual Tools:
AI-Powered Tools:
AI Line Studio generates AWS architecture diagrams from natural language descriptions in 15–20 seconds. For AWS-specific workflows, the dedicated AI cloud diagram generator turns descriptions into production-ready visuals. The AI architecture diagram builder helps build and refine EKS architecture diagrams into production-ready designs.
Infrastructure as Code:
Tools like Terraform and AWS CloudFormation can generate diagrams from your infrastructure code.
Amazon EKS is a fully managed Kubernetes service with a two-layer architecture: a highly available control plane managed by AWS and worker nodes running in your VPC. Key takeaways:
To start building your own EKS architecture diagrams, explore the EKS AWS architecture diagram tool for templates and practical examples. For end-to-end system architecture beyond Kubernetes, the AI system architecture generator covers distributed and enterprise system designs.