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.
Ask your DevOps team to create a test cluster (recommended)
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:
-
Install dependencies
If you want to use Amazon you'll need to setup
kops
.For Google, you'll need
gcloud
. Make sure to rungcloud auth login
so thatqk8s
will have the necessary credentials. -
Download qk8s
Run
curl -fsSL 'https://kelda.io/qk8s.sh' -o qk8s
. -
Make it executable
Run
chmod +x qk8s
. -
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.
Docker for Mac (Recommended)
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!