ekz

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2021 License: Apache-2.0

README

ekz

A Kubernetes distribution built on EKS-D

ekz is an opinionated Kubernetes distribution built using binaries from the AWS EKS Distro (EKS-D).

What is EKS-D?

EKS-D provides the same software that has enabled tens of thousands of Kubernetes clusters on Amazon EKS.

Architecture

The EKZ architecture supports EKS-D in multiple implementations, called providers. Currently, we ship the k0s-based, and KIND-based implementations. The provider can be specified when creating a cluster.

Getting Started

ekz creates a cluster for you inside a Docker container on your laptop. You can start a cluster with or without using the CLI.

With CLI

You could install the CLI with one the following options.

Homebrew (macOS & Linux)
brew install ekz-io/tap/ekz
CURL One-liner (macOS & Linux)
curl -sSL https://bit.ly/install-ekz | bash
Wget One-liner (macOS & Linux)
wget -qO- https://bit.ly/install-ekz | bash
Scoop (Windows)
scoop bucket add ekz-io https://github.com/ekz-io/scoop-ekz.git
scoop install ekz-io/ekz
Chocolatey (Windows)
choco install -y ekz

Then you can start your first EKS-D cluster using the following command:

ekz create cluster
Without CLI

If you don't want to install the CLI, you could also start a cluster using one of ekz containers.

macOS & Linux
$ docker run -d --name ekz-controller \
   --hostname controller \
   --privileged -v /var/lib/ekz \
   -p 6443:6443 quay.io/ekz-io/ekz:v1.18.9-eks-1-18-1.6

in case you'd like to try the dev version (from the main branch):

$ docker run -d --name ekz-controller \
   --hostname controller \
   --privileged -v /var/lib/ekz \
   -p 6443:6443 quay.io/chanwit/ekz:v1.18.9-eks-1-18-1.dev
Windows

ekz also runs on Windows if you've got Docker Desktop installed.

PowerShell
$ docker run -d --name ekz-controller `
   --hostname controller `
   --privileged -v /var/lib/ekz `
   -p 6443:6443 quay.io/chanwit/ekz:v1.18.9-eks-1-18-1.dev
Command Prompt
$ docker run -d --name ekz-controller ^
   --hostname controller ^
   --privileged -v /var/lib/ekz ^
   -p 6443:6443 quay.io/chanwit/ekz:v1.18.9-eks-1-18-1.dev

Then we can obtain KUBECONFIG by running:

$ docker exec ekz-controller cat /var/lib/ekz/pki/admin.conf > ~/.kube/config

Please wait for a couple of minutes and an EKS-D cluster will be ready on your laptop.

$ kubectl get nodes
NAME         STATUS   ROLES    AGE   VERSION
controller   Ready    <none>   42s   v1.18.9-eks-1-18-1

Features

The EKZ provider

  1. EKS-D binaries from v1.18.9-eks-1-18-1
  2. Packaged with k0s v0.10
  3. Amazon Linux 2 base image
  4. Enable network policy by default via the Calico CNI

The KIND provider

  1. EKS-D binaries from v1.18.9-eks-1-18-1
  2. Using KIND v0.10
  3. Packaged using KIND v1.18.15 node image
  4. Enable network policy by default via the Calico CNI

Directories

Path Synopsis
cmd
ekz command
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL