Amazon EKS Anywhere

I’ve been playing lately with Amazon EKS Anywhere, the Kubernetes distribution used by EKS that you can install in your own premises. It works pretty well and makes for a very decent alternative to Minikube, K3s and other similar “Kubernetes-in-your-laptop” packages.

Here are the steps I followed in my Ubuntu box:

Install tools

Very simple to install, just curl a few tools and you’re done.

$ curl "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" --silent --location | tar xz -C /tmp
$ mv /tmp/eksctl ~/.local/bin
$ export EKSA_RELEASE="0.5.0" OS="$(uname -s | tr A-Z a-z)"
$ curl "https://anywhere-assets.eks.amazonaws.com/releases/eks-a/1/artifacts/eks-a/v${EKSA_RELEASE}/${OS}/eksctl-anywhere-v${EKSA_RELEASE}-${OS}-amd64.tar.gz" --silent --location | tar xz ./eksctl-anywhere
$ mv ./eksctl-anywhere ~/.local/bin

Create cluster

Once you have installed it, very easy to create a new cluster:

$ eksctl anywhere generate clusterconfig dev --provider docker > dev.yaml
$ eksctl anywhere create cluster -f dev.yaml

Deploy app

And of course, you can launch an app to see it in action:

$ kubectl apply --kubeconfig ./dev/dev-eks-a-cluster.kubeconfig -f "https://anywhere.eks.amazonaws.com/manifests/hello-eks-a.yaml"
$ kubectl port-forward svc/hello-eks-a 3000:80 --kubeconfig ./dev/dev-eks-a-cluster.kubeconfig
$ curl localhost:3000
$ k9s --kubeconfig dev/dev-eks-a-cluster.kubeconfig

Delete Cluster

Finally, some cleanup:

$ eksctl anywhere delete cluster dev