Skip to content

Creating the Kubernetes Cluster

Kelda requires a Kubernetes cluster in order to run your containers. Any standard Kubernetes cluster will work.

This document covers a couple of approaches for getting this cluster.


If your company already has a way of creating Kubernetes clusters (e.g. for creating development clusters), just create a cluster that way.

The benefits are that you won't have to deal with creating the cluster yourself, and you'll be sure that the cluster follows your company's security policies.

All you'll need from your DevOps team after they create the cluster is a Kubeconfig file that can be used with kubectl.


Use an existing cluster

If your team already has a Kubernetes cluster for testing, you can deploy Kelda to this cluster. Kelda won't affect any namespaces other than your development namespace.


Boot the cluster yourself (in the cloud)

If you have cloud credentials for booting resources in the cloud, you can use one of the hosted Kubernetes solutions to create a cluster in the cloud. We use Google Kubernetes Engine internally, but Amazon, Azure and DigitalOcean all have equivalent services.

Booting on Amazon and Google

Our qk8s script makes it easy to spin up a cluster on Google and Amazon:

  1. Install dependencies

    If you want to use Amazon you'll need to setup kops.

    For Google, you'll need gcloud. Make sure to run gcloud auth login so that qk8s will have the necessary credentials.

  2. Download qk8s

    Run curl -fsSL 'https://kelda.io/qk8s.sh' -o qk8s.

  3. Make it executable

    Run chmod +x qk8s.

  4. Run the script

    For Amazon, run ./qk8s aws.

    For Google, run ./qk8s gcp.


Run the cluster locally

There are a number of tools for booting a Kubernetes cluster on your local machine. This can be a good option if you want to play around with Kelda. However, you won't get the resource benefits of offloading the Kubernetes cluster to the cloud.

If you already have Docker installed, you should probably go with this approach.

Docker for Mac can create a Kubernetes cluster by running the Kubernetes components in Docker containers.

You can enable it in the "Kubernetes" pane of the Docker For Mac preferences. In the "Advanced" pane, make sure to allocate enough CPU and RAM to run your application.

Once the cluster is ready, you can deploy Kelda to the docker-desktop Kubeconfig context.

Minikube

Minikube is a VM-based version of Kubernetes for running locally. Rather than running in containers, it boots an actual VM containing the Kubernetes components.

To create the cluster, run minikube start --cpus <num cpus> --memory <Mb of RAM>. Make sure to allocate enough CPU and RAM to run your application.

Once the cluster is ready, you can deploy Kelda to the minikube Kubeconfig context.

Other Options

There are many other tools for creating local Kubernetes clusters, such as Kind, Microk8s, and k3s.


Use a Kelda-managed cluster (Beta)

If you don't want the overhead of maintaining a Kubernetes cluster, we can run it for you.

Request access to Kelda’s beta cloud service here!