ekz is an opinionated Kubernetes distribution built using binaries from the AWS EKS Distro (EKS-D). It aims to be the easiest way to run EKS clusters on desktops (Linux, macOS and Windows).
What is EKS-D?
EKS-D provides the same software that has enabled tens of thousands of Kubernetes clusters on Amazon EKS.
ekz aims at solving the EKS compatibility problems for developers as much as possible by implanting EKS-D binaries to KinD and the k0s projects, so that we can easily spin EKS-compatible clusters up to test our Kubernetes applications.
The architecture of EKZ has been designed to support EKS-D in multiple implementations, called providers. Currently, we ship the k0s-based (EKZ provider), and KinD-based (KinD provider) implementations. A provider can be specified when creating a cluster, or via the
Here's EKS-D versions supported by EKZ.
ekz creates a cluster for you inside a Docker container on your laptop. You can start a cluster with or without using the CLI.
You could install the CLI with one the following options.
brew install ekz-io/tap/ekz
brew upgrade ekz-io/tap/ekz
curl -sSL https://bit.ly/install-ekz | bash
wget -qO- https://bit.ly/install-ekz | bash
scoop bucket add ekz-io https://github.com/ekz-io/scoop-ekz.gitscoop install ekz-io/ekz
choco install -y ekz
Then you can start your first EKS-D cluster using the following command:
ekz create cluster
You can also use the KinD provider, so that your EKS-D clusters will be KinD-compatible. To use the KinD provider, you can use either flag
Here' the example of using the
ekz create cluster --provider=kind
In case you'd like to use KinD as the default provider, it's better to set the EKZ_PROVIDER environment variable:
export EKZ_PROVIDER=kindekz create cluster
Please wait for a couple of minutes and an EKS-D cluster will be ready on your laptop.
❯ kubectl get nodesNAME STATUS ROLES AGE VERSIONcontroller Ready <none> 87s v1.21.2-eks-1-21-1
To use EKZ without using the CLI, please refer to this document.
Packaged with the
Base image: Amazon Linux 2
Enable network policy by default via Kube-Router (Calico is optional)
Bundled with a local storage class, and a load balancer
Using KinD v0.11 as the skeleton
Packaged using KinD v1.18, v1.19, v1.20, v1.21 node images
Enable network policy by default via the Calico CNI
Bundled with a local storage class (from KinD), and a load balancer