AWS Open Source Blog
eksctl: Amazon EKS Cluster with One Command
There are a number of ways to create a Kubernetes cluster using Amazon Elastic Container Service.
eksctl gives you a simple, single, one-line command to bring up a cluster with a basic VPC, and completes the process by writing a new
KUBECONFIG and deploying the
ConfigMap, allowing you to get up and running with EKS in minutes. In this post co-authored with Ilya Dmitrichenko, creator of the project, we give you a quick introduction to what
eksctl can do, and what the future of the project looks like.
Developers love the simplicity of Command Line Interfaces (CLI), bringing them closer to their existing workflows. While Amazon Elastic Container Service for Kubernetes (Amazon EKS) helps remove the undifferentiated heavy lifting of deploying and operating a production-grade Kubernetes cluster, it still takes multiple steps to bring up a cluster and let developers start deploying their applications.
kubectl, Weaveworks and Amazon are bringing the familiarity of the CLI for managing Kubernetes (as with kops, kubicorn, and kubectl) to EKS in eksctl.
What is eksctl?
Amazon and Weaveworks have been collaborating on creating an open source tool for creating EKS clusters in minutes with a single command:
$ eksctl create cluster
eksctl is written in Go and based on Amazon EKS Getting Started CloudFormation templates.
When you execute
eksctl create cluster, it will take care of creating the initial AWS Identity and Access Management (IAM) Role used to allow the master control plane to connect to EKS. It will then create the base Amazon VPC architecture, and then the master control plane. Once the control plane is active, it will create a node group to bring up instances, then deploy the ConfigMap that allows the nodes to join the cluster, and, finally, create a pre-configured
kubeconfig that will give you access to the cluster.
At this time, we are welcoming early contributors, and would especially appreciate your feedback and bug reports prior to 0.1.0 release.
The current version of
eksctl allows you to create a number of clusters, list those, and delete them as well. We would like to expand the current functionality, for example with more usable outputs for the list and get commands, because ad-hoc cluster creation through CLI tools does not scale beyond personal use.
So what’s in store for
For version 0.1.0, we will be addressing bug fixes found and reported by you!
For version 0.2.0, we are planning on a number of popular –addons that can be easily installed onto your EKS cluster. For example, Weave Scope, Helm, Jenkins X and KubeApps, to name just a few.
For version 0.3.0, we’d like to ensure that it complies with GitOps best practices, which means we are looking to implement a Cluster API controller. Essentially, this allows you to manage clusters in a declarative manner with eksctl apply.
The broader picture is that we would like to provide an eksctld controller that allows you to utilize kubectl apply and/or a GitOps operator (such as Weave Flux). Once in place, it allows for a wide range of uses cases, ranging from addon and node upgrades to declarative management for multiple clusters.
Let us know what you would like to see next in
eksctl – reach out on Kubernetes Slack (#eks) or Twitter!
The content and opinions in this post are those of the third-party author and AWS is not responsible for the content or accuracy of this post.