Amazon EKS simplifies the deployment, management, and scaling of Kubernetes clusters on AWS.
Amazon Elastic Kubernetes Service (EKS) is a managed Kubernetes service that makes it easy to run Kubernetes on AWS. It is designed for orchestration of Kubernetes-specific workloads in AWS. EKS offers Managed Nodes, Self-Managed Nodes, and Fargate.
EKS is considered more complex than Docker and adds operational overhead compared to simpler containerization solutions.
The EKS control plane endpoint can be configured to be either public (internet accessible) or private (VPC traffic only).
A new feature in AWS (e.g., via Amazon Inspector) maps ECR container images with running containers across Amazon ECS (Elastic Container Service) or EKS (Elastic Kubernetes Service).
EKS offers various node types and integrated features for managing Kubernetes deployments.
Key features and components for deploying and managing EKS clusters.
Node Types
EKS supports different types of nodes for running Kubernetes workloads:
Managed Nodes:
Managed by AWS.
Self-Managed Nodes:
Mostly managed by the user.
Fargate Nodes:
Serverless, eliminates infrastructure worries.
Storage Options
EKS clusters can utilize various AWS storage services.
options:
EBS, EFS, S3, FSx
IAM Roles for Service Accounts (IRSA)
IRSA is a mechanism that grants API permissions for AWS services to individual pods within an EKS cluster.
Secrets Encryption
EKS secrets, such as etcd, can be encrypted using an AWS Key Management Service (KMS) key for the cluster.
AWS extends Kubernetes management capabilities beyond the AWS cloud with EKS Anywhere and EKS Connector.
EKS Anywhere allows users to manage Kubernetes clusters on-premises using the same methods and tooling as Amazon EKS in the AWS cloud. This standardizes management across different environments.
EKS Connector provides full lifecycle management for multiple Kubernetes clusters, including those operating independently of AWS.
Both ECS Anywhere and EKS Connector aim to manage container-based applications outside the AWS cloud, standardizing management across diverse environments.
Optimizing costs for containerized applications on EKS involves strategic instance selection and management.
For stateless, disruption-tolerant containerized applications, using Spot Instances within an Amazon EKS Managed Node Group is a recommended solution. This approach is low-cost due to Spot Instance pricing and reduces operational overhead because AWS manages cluster scaling, upgrades, and node lifecycle.
Using On-Demand Instances in an EKS Managed Node Group reduces operational overhead, but it is not as cost-effective as utilizing Spot Instances for suitable workloads.
To simplify operational overhead, Fargate nodes can be leveraged within EKS. Additionally, using spot instance pricing for EC2-based managed or self-managed nodes can lead to further cost savings.