Elastic Kubernetes Service
Last updated
Last updated
Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
Amazon Elastic Kubernetes Service (Amazon EKS) is a fully-managed, Kubernetes implementation that simplifies the process of building, securing, operating, and maintaining Kubernetes clusters on AWS.
Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service for running Kubernetes applications in the cloud or on-premises
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications
Use when you need to standardize container orchestration across multiple environments using a managed Kubernetes implementation
Features:
Hybrid Deployment - manage Kubernetes clusters and applications across hybrid environments (AWS + On-premises)
Batch Processing - run sequential or parallel batch workloads on your EKS cluster using the Kubernetes Jobs API. Plan, schedule and execute batch workloads
Machine Learning - use Kubeflow with EKS to model your machine learning workflows and efficiently run distributed training jobs using the latest EC2 GPUpowered instances, including Inferentia
Web Applications - build web applications that automatically scale up and down and run in a highly available configuration across multiple Availability Zones
Workload Auto Scaling:
Vertical Pod Autoscaler - automatically adjusts the CPU and memory reservations for your pods to help "right size" your applications
Horizontal Pod Autoscaler - automatically scales the number of pods in a deployment, replication controller, or replica set based on that resource's CPU utilization
Cluster Auto Scaling:
Amazon EKS supports two autoscaling products:
Kubernetes Cluster Autoscaler
Karpenter open source autoscaling project
The cluster autoscaler uses AWS scaling groups, while Karpenter works directly with the Amazon EC2 fleet
Amazon EKS supports Network Load Balancers and Application Load Balancers
The AWS Load Balancer Controller manages AWS Elastic Load Balancers for a Kubernetes cluster
Install the AWS Load Balancer Controller using Helm V3 or later or by applying a Kubernetes manifest
The controller provisions the following resources:
An AWS Application Load Balancer (ALB) when you create a Kubernetes Ingress
An AWS Network Load Balancer (NLB) when you create a Kubernetes service of type LoadBalancer
In the past, the Kubernetes network load balancer was used for instance targets, but the AWS Load balancer Controller was used for IP targets
With the AWS Load Balancer Controller version 2.3.0 or later, you can create NLBs using either target type
Amazon EKS Distro is a distribution of Kubernetes with the same dependencies as Amazon EKS
Allows you to manually run Kubernetes clusters anywhere
EKS Distro includes binaries and containers of open-source Kubernetes, etcd, networking, and storage plugins, tested for compatibility
You can securely access EKS Distro releases as open source on GitHub or within AWS via Amazon S3 and Amazon ECR
Amazon EKS Distro alleviates the need to track updates, determine compatibility, and standardize on a common Kubernetes version across distributed teams
You can create Amazon EKS Distro clusters in AWS on Amazon EC2 and on your own on-premises hardware using the tooling of your choice
Run ECS or EKS on customer-managed infrastructure, supported by AWS
Customers can run Amazon ECS/EKS Anywhere on their own onpremises infrastructure on bare metal servers
You can also deploy ECS/EKS Anywhere using VMware vSphere