AWS re:Invent hasn’t officially begun, yet there is a game changing new feature to EKS to make you run Kubernetes like a pro!!!

In this blog we will investigate what EKS Auto Mode is all about and illustrates how to enables EKS Auto Mode on existing cluster and try to migrate to our managed node groups workloads to EKS auto mode of an existing cluster but we will be not able to do that, find out why in the blog!

I have also analyzed the price you will pay for EKS Auto v/s the simplicity of operations it provides to help you make an informed decision whether to enable it or not.

I have created a terraform repository to quickly reproduce this blog with just 2 commands, let’s conquer EKS Auto Mode.

Motivation

December 2, 2024 (JST) – Just ahead of re:Invent 2024, AWS released an exciting update introducing EKS Auto Mode.

What Does This Update Mean for You?

Note: Terraform support(still ongoing) not yet there so for this blog we will use AWS console.

Cost considerations of this Update

You pay for Amazon EKS Auto Mode based on the duration and type of Amazon EC2 instances launched and managed by EKS Auto Mode. The Amazon EKS Auto Mode prices below are in addition to the Amazon EC2 instance price, which covers the EC2 instances themselves.

In simple words EKS Auto Mode charges a management fee that varies based on the EC2 instance type launched, in addition to your regular EC2 instance costs.

What does it actually automate

EKS auto mode is designed to automate data plane components so here are the following components being automated along with the features:

Automated Data Plane Components in EKS Auto Mode

Enabling auto mode on Existing Cluster

Migrations Supported

Note: Also remember to take a look on how to configure Kubernetes based resource to be owned by either self-managed controllers or EKS Auto Mode.

Prerequisites

Updating IAM permissions and configuring core EKS Auto Mode settings

Minimum required version of certain Amazon EKS Add-ons

Perspective.

Create a Karpenter Node Pool

Karpenter, a node provisioning tool that helps optimize cluster scaling and resource utilization. With Karpenter’s NodePool resource, you can define specific requirements for your compute resources, including instance types, availability zones, architectures, and capacity types.

Disable EKS Auto Modę

You can disable EKS Auto Mode on an existing EKS Cluster. This is a destructive operation.

Migrate from EKS Managed Node Groups to EKS Auto Mode

When transitioning your Amazon EKS cluster to use EKS auto mode, you can smoothly migrate your existing workloads from managed node groups using the eksctl CLI tool.

This process ensures continuous application availability while EKS auto mode optimizes your compute resources. The migration can be performed with minimal disruption to your running applications.

Prerequisites

Current state of Pods

jatin.mehrotra@CK0662-001 eks-auto-mode % kubectl get po -o wide
NAME                    READY   STATUS    RESTARTS   AGE     IP           NODE                         NOMINATED NODE   READINESS GATES
test-65b7dbddd4-jdxhw   1/1     Running   0          2m29s   10.0.2.52    ip-10-0-2-85.ec2.internal    <none>           <none>
test-65b7dbddd4-lzd4r   1/1     Running   0          2m29s   10.0.1.118   ip-10-0-1-128.ec2.internal   <none>           <none>

eksctl update auto-mode-config --cluster eks-auto-test --drain-nodegroup  --region us-east-1 --profile ck-test

eksctl info
eksctl version: 0.194.0
jatin.mehrotra@CK0662-001 eks-auto-mode % eksctl get addons  --cluster eks-auto-test  --region us-east-1 --profile ck-test
2024-12-02 12:29:41 [ℹ]  Kubernetes version "1.30" in use by cluster "eks-auto-test"
2024-12-02 12:29:41 [ℹ]  getting all addons
2024-12-02 12:29:44 [ℹ]  to see issues for an addon run `eksctl get addon --name <addon-name> --cluster <cluster-name>`
NAME                            VERSION                 STATUS  ISSUES  IAMROLE UPDATE AVAILABLE                                                                     CONFIGURATION VALUES     POD IDENTITY ASSOCIATION ROLES
amazon-cloudwatch-observability v2.5.0-eksbuild.1       ACTIVE  0
aws-ebs-csi-driver              v1.37.0-eksbuild.1      ACTIVE  0
coredns                         v1.11.1-eksbuild.8      ACTIVE  0               v1.11.3-eksbuild.2,v1.11.3-eksbuild.1,v1.11.1-eksbuild.13,v1.11.1-eksbuild.11,v1.11.1-eksbuild.9
kube-proxy                      v1.30.6-eksbuild.3      ACTIVE  0
vpc-cni                         v1.19.0-eksbuild.1      ACTIVE  0

Update: Dec 3, 12:20 AM JST

It needs --drain-all-nodegroups as well as cluster-config file which is very difficult to generate for existing cluster created by console or terraform.

eksctl update auto-mode-config --drain-all-nodegroups -f eks-config.yaml --profile ck-test

We need to wait more so that AWS can fix this bug. There is new issue for this bug.

Investigating the Update the Kubernetes Version of an EKS Auto Mode cluster

From Solutions Architect Perspective

Initially I think this will increase the cost but the real benefits would kick in after a sustained usage to offset the extra price with ease of operations.

このウェブサイトでは、よりよいユーザー体験のためにCookieを使用しています。詳細は、Cookieに関する方針をご参照ください。OK をクリックまたは本サイトの利用を続行することで、我々がCookieを使用することに同意したとみなされます。