DEV Community

Shittu Sulaimon (Barry)
Shittu Sulaimon (Barry)

Posted on

AWS EKS AutoMode: Simplifying Kubernetes Management

From the word “Auto”, it’s clear that this feature emphasizes automation. EKS AutoMode is a revolutionary feature that AWS recently unveiled at re:Invent December 2024, with the goal of making Kubernetes cluster administration on Amazon Elastic Kubernetes Service (EKS) easier. Customers can concentrate on innovation and adding value to their organizations thanks to this feature, which eliminates the operational load typically involved with setting up and maintaining Kubernetes clusters.

In the past, AWS simplified things for users by controlling the EKS clusters' control plane, which included maintaining intricate parts like the API server and other things. But with EKS AutoMode, AWS has gone one step further by automating networking, storage, and worker node management, relieving users of several infrastructure hassles. For enterprises wishing to implement Kubernetes without requiring in-depth knowledge of its underlying architecture, this breakthrough represents a major advancement.

Key Advantages of AWS EKS AutoMode
Here are some of the standout benefits of this new feature:
1. Simplified Cluster Operations:
The Operational Excellence pillar of AWS's Well-Architected Framework is specifically in line with EKS AutoMode's architecture. Essential processes like patching, version upgrades, cluster management, and putting security best practices into effect are all automated by it. As a result, clients no longer have to invest time in overseeing the clusters' operational lifecycle—AWS takes care of everything.

2. Improved Performance, Availability, and Security:
EKS AutoMode improves the security posture, availability, and performance of applications operating in the cluster by automating operational operations. Even while scaling or patching, workloads are guaranteed to fulfill strict security and performance requirements thanks to built-in AWS optimizations.

3. Cost-Optimized Compute and Right-Sizing:
EKS AutoMode's capacity to optimize computational resources is among its most remarkable attributes. By preventing over- or under-provisioning, it guarantees that the compute, memory, and storage resources needed for workloads are sized appropriately. This ensures that apps operate effectively while conserving money.
EKS AutoMode further lowers expenses for clients by optimizing EC2 instances by automatically choosing the appropriate instance sizes and types.

4. Built-In Health Monitoring and Auto Repair:
EKS AutoMode continuously monitors the health of applications and underlying resources, automatically repairing any issues that arise. This ensures that workloads remain highly available and resilient without manual intervention.

5. Streamlined Kubernetes Adoption:
Even without a thorough understanding of Kubernetes architecture, enterprises may easily adopt Kubernetes with EKS AutoMode. For businesses wishing to adopt containerization and update their applications, this reduces the entry barrier.

Hands-On Guide: Creating an EKS AutoMode Cluster Using the AWS Console

To establish a cluster in the console, we have two choices:

  • Quick configuration (with EKS Auto Mode)

  • Custom configuration

This post will teach you how to use the Quick configuration option to construct an EKS Auto Mode cluster.

Step 1: Sign in to the AWS Management Console

  • Log in to your AWS account at AWS Management Console.

  • Navigate to the EKS (Elastic Kubernetes Service) dashboard by searching for EKS in the search bar.

Step 2: Create a new EKS cluster

  • On the Amazon EKS dashboard, click on Create cluster.

  • Under the Cluster configuration section:

    • Name: Enter a name for your cluster (e.g., eks-automode-cluster).
    • Version: Select the Kubernetes version you’d like to use (the latest version is recommended for best support and features).

Image description
Step 3: The Cluster IAM Role should be chosen. Use the Create suggested role option if this is your first time setting up an EKS Auto Mode cluster.

  • The Cluster IAM Role includes required permissions for EKS Auto Mode to manage resources including EC2 instances, EBS volumes, and EC2 load balancers, by default it will create eksClusterRole, the name can actually change but the policy attached is the important part.

  • These are the list policies that is created in the attached policies:

Image description

Step 4: Choose the role of Node IAM. Use the Create suggested role option if this is your first time setting up an EKS Auto Mode cluster.

  • The necessary permissions for Auto Mode nodes to connect to the cluster are included in the Node IAM Role. Permissions to retrieve ECR images for your containers must be included in the Node IAM Role. By default we have the role named AmazonEKSAutoNodeRole which have the following policy attached to it. The name can vary but the necessary policies should be attached.

Image description

  • If you recently created a new role, use the Refresh icon to reload the role selection dropdown.

Step 5: For your EKS Auto Mode cluster, choose the VPC. You can either select a VPC you've already made for EKS or click the build VPC button to build a new one.

Step 6: (optional) Select View quick configuration defaults to review all configuration values for the new cluster. The table indicates some values are not editable after the cluster is created.

Step 7: By selecting "Create cluster." Note that it may take up to fifteen minutes to construct the cluster.

Image description

  • After it has successfully created a cluster, let us view the nodes being provisioned by navigating to the compute tab:

Image description

  • Here we see no node being provisioned and nodefinitely no resources will be available, so let us ttry and inflate workload into the cluster so we can have workloads and nodes running. let's kubectl apply the below manifest file
apiVersion: apps/v1
kind: Deployment
metadata:
  name: inflate
spec:
  replicas: 1
  selector:
    matchLabels:
      app: inflate
  template:
    metadata:
      labels:
        app: inflate
    spec:
      terminationGracePeriodSeconds: 0
      nodeSelector:
        eks.amazonaws.com/compute-type: auto
      securityContext:
        runAsUser: 1000
        runAsGroup: 3000
        fsGroup: 2000
      containers:
        - name: inflate
          image: public.ecr.aws/eks-distro/kubernetes/pause:3.7
          resources:
            requests:
              cpu: 1
          securityContext:
            allowPrivilegeEscalation: false

Enter fullscreen mode Exit fullscreen mode
  • Now, let's recheck the nodes and the workload running from the console. From the below diagram, we can see it provisioned where the deployment is running.

Image description

Image description

  • We can then destroy and clean up the workload.

  • Out of the box solution that is applied to EKS is the observability of the cluster, added to it is a dashboard for Control plane monitoring, Cluster health issues, Cluster insights and Node health issues.

Top comments (0)