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
sudo mv /tmp/eksctl /usr/local/bin
Test that your installation was successful with the following command.
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 :
- Create , Delete , get list of clusters
- create, drain and delete node groups
- scale a node group
- Update a cluster
- use custom AMI’s
- Configure VPC Networking
- Configure Access to VPC Endpoints
- Support for GPU node groups
- Spot instances and mixed instances
- List of cluster cloudformation Stacks
- Install Core DNS
- Write Kubeconfig file for cluster
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.