What is EKS?
Amazon EKS is a managed Kubernetes service on AWS. “Managed” means AWS operates and maintains the Kubernetes control plane for you — the API server, scheduler, controller manager, and etcd — including availability, scaling, and backups. You remain responsible for the compute that runs your pods unless you choose a serverless compute option such as Fargate.
- Running and scaling a Kubernetes control plane is complex: installing and maintaining control plane components, ensuring high availability across Availability Zones, performing backups and upgrades, and scaling the control plane are operationally heavy tasks.
- Security and operational best practices for the control plane add extra overhead. Using EKS reduces this burden because AWS manages many control-plane security and availability responsibilities.
- EKS integrates tightly with many AWS services (IAM for authentication and authorization, Secrets Manager, ELB/ALB, S3, CloudWatch), simplifying adoption of AWS-specific features and operational workflows.

Worker node options
Although AWS manages the control plane, worker nodes that run your pods require separate consideration. EKS supports three primary compute options to match different management preferences:
Summary: For full control of the underlying EC2 instances choose self-managed nodes. For EC2-based nodes managed by EKS choose managed node groups. For a serverless experience (no EC2 instances to manage) choose Fargate.
Self-managed nodes
When using self-managed nodes you provision EC2 instances yourself, install and configure Kubernetes worker components (kubelet, kube-proxy), choose and configure a container runtime, manage OS updates and security patches, and ensure nodes register with the cluster. This gives maximum control but also maximum operational responsibility.
Managed node groups
Managed node groups automate provisioning and lifecycle management of EC2 worker nodes for EKS. Node groups run EKS-optimized AMIs and are created into Auto Scaling groups that EKS can manage. This reduces much of the operational overhead compared to fully self-managed EC2 nodes.
Fargate
Fargate for EKS provides a serverless compute option: you do not provision or manage EC2 worker nodes. When pods are scheduled onto Fargate, AWS provisions and manages the compute resources for those pods and charges at pod-level resource granularity. Fargate is ideal when you want to eliminate node management.
Creating an EKS cluster — key inputs and considerations
When creating an EKS cluster, plan for the following inputs and configuration:- Cluster name and Kubernetes version.
- An IAM role for the EKS control plane (EKS service role).
- Compute configuration: self-managed nodes, managed node groups, or Fargate.
- Storage classes, PersistentVolume options, and any required secrets.
- The VPC and subnets where the cluster and worker nodes will run.
- Security groups and network configuration to control traffic to and from the cluster.

Creating worker nodes
For node groups, select instance types and set minimum, desired, and maximum capacity. Associate the node group with the EKS cluster so nodes automatically join the cluster and register with the control plane.
Connecting to your EKS cluster (kubectl)
To interact with an EKS cluster using kubectl, your kubeconfig must include the cluster endpoint and credentials. The AWS CLI provides a helper to update kubeconfig:How to create an EKS cluster
There are multiple ways to create an EKS cluster depending on your preference for UI, CLI, or Infrastructure as Code:- AWS Management Console: step-through creation, optionally sets up worker nodes, and can configure kubeconfig for you.
- eksctl: a focused CLI that simplifies cluster creation and lifecycle operations.
- Infrastructure as Code (IaC): use Terraform, Pulumi, or AWS CloudFormation to define clusters and node groups for repeatability and version control.

Best-practice tips
- Prefer managed node groups or Fargate unless you specifically require host-level access.
- Keep the control plane Kubernetes version up to date and follow the EKS deprecation schedule.
- Use AWS IAM Authenticator and Kubernetes RBAC to control cluster access.
- Integrate with AWS services (CloudWatch, Secrets Manager, ALB/ELB) using the official AWS integrations for EKS.
Links and references
- eksctl — https://eksctl.io/
- AWS EKS documentation — https://docs.aws.amazon.com/eks/
- Kubernetes Basics — https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
- AWS CloudWatch — https://learn.kodekloud.com/user/courses/aws-cloudwatch
- AWS IAM — https://learn.kodekloud.com/user/courses/aws-iam
- Terraform — https://learn.kodekloud.com/user/courses/terraform-basics-training-course
- Pulumi — https://learn.kodekloud.com/user/courses/pulumi-essentials
- CloudFormation — https://learn.kodekloud.com/user/courses/aws-cloud-formation