How to Install eksctl – The official CLI for Amazon EKS

eksctl
Reading Time: 3 minutes
What's new in EKSctl?

A tool that is simple to use for managed service of Kubernetes in AWS. Yes, you guessed it right, today in this blog we will be going to talk about eksctl which is the official command-line utility that is used to set up the EKS cluster on amazon in an easy manner.

We will be going to walk through the installation steps for eksctl cli. This cli is easier to use than web interface which is one of the ways through which we can install EKS Cluster. Now before moving on to the installation steps, let’s first discuss something about eksctl. If we dig deeper into eksctl then we will find out that it was written in Go language, It uses CloudFormation that was created by Weaveworks.

This is open-source software which means, you are free to contribute in this project. Now lets us move to the steps through which we can download this cli.

Downloading Eksctl on Ubuntu/Debian

Download and extract the latest release of eksctl with the following command.

curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp

Move the extracted binary to /usr/local/bin

sudo mv /tmp/eksctl /usr/local/bin

Test that your installation was successful with the following command.

eksctl version

For ARM system, please change ARCH (e.g. armv6, armv7 or arm64) accordingly

curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_arm64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin

Alternatively, macOS users can use Homebrew:

brew tap weaveworks/tap
brew install weaveworks/tap/eksctl

and Windows users can use chocolatey:

chocolatey install eksctl

Now after finishing the setup, you can run eksctl help command to check for the flag that you can use with this command-line utility. I did this in my system and you can see the screenshot where all the flags and commands that we can use with eksctl cli are present.

Now let’s discuss some of the commands of eksctl

Karpenter support with Eksctl

You might be wondering what is Karpenter, For a Brief introduction, Karpenter is an open-source project that is a Kubernetes autoscaler, and currently, it is compatible with AWS only. But in the future, we might see that in Other cloud providers.

Through Eksctl you also get support to add Karpenter while creating a new cluster. It will create all the prerequisites outlined in Karpenter’s Getting Started section including installing Karpenter itself using Helm.

The following YAML outlines a typical installation configuration that you will be getting:

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: cluster-with-karpenter
  region: ap-south-1
  version: '1.20'

karpenter:
  version: '0.4.3'

managedNodeGroups:
  - name: managed-ng-1
    minSize: 1
    maxSize: 2
    desiredCapacity: 1

As you can see the API version which is eksctl.io/v1alpha5 and other information that is mentioned in the Yaml file, If you want you can change all the data and add everything according to your wish.

Here as you can see the karpenter version, Also after this you can install the provisioner and you are good to go i.e the karpenter can start adding the right nodes into your cluster. To dig more about Karpenter and provisioner you can visit this link

Now let’s not dig deeper into karpenter as our’s focus is on the eksctl Cli, Let’s now understand how this is different from kubectl.

Some amazing things that you can do with Eksctl on EKS are :

  1. Create , Delete , get list of clusters
  2. create, drain and delete node groups
  3. scale a node group
  4. Update a cluster
  5. use custom AMI’s
  6. Configure VPC Networking
  7. Configure Access to VPC Endpoints
  8. Support for GPU node groups
  9. Spot instances and mixed instances
  10. List of cluster cloudformation Stacks
  11. Install Core DNS
  12. Write Kubeconfig file for cluster

Conclusion:

In this blog, We went from knowing about Eksctl to installing methods of eksctl on different machines. Along with that, we learned some amazing things that we can do with eksctl on eks only. Now it’s time to wrap up this blog, I hope you liked this blog. Please like, comment, and share this blog as much as possible as this will motivate me to write more.

References: Link1 Link2

Written by 

Passionate about Technology and always Interested to Upskill myself in new technology, Working in the field of DevOps