In our workflow at SIG, our development stack has been composed of Docker, Minikube, and Kubectl.
Minikube is a user-friendly tool that can be used to create local Kubernetes clusters on your development machine. It includes utilities for mounting directories, a dashboard, and much more.
Creating a cluster with Minikube is as simple as running the command `minikube start`. After a short wait, it will create a Kubernetes cluster that you can begin to interact with immediately.
To clean up when you are done testing, you can delete all running Minikube clusters with `minikube delete --all`
Kubectl is a tool that can be used to interact with and examine Kubernetes clusters. It is expansive, and the documentation is very useful.
To deploy an existing image, you can use the following command to start a deployment.
kubectl create deployment--image=
Alternatively, a yaml file describing a deployment can be applied in a similar way.
kubectl apply -f.yml
Whichever method you choose, shortly after, your deployment will be running and available to inspect or modify with the various Kubectl commands documented in the `kubectl` manpage.
To delete a Kubernetes deployment, one can run `kubectl delete deployment
While working with Kubernetes I developed a set of bash aliases and one function to ease the workflow of typing long commands and frequently switching contexts. This file can be sourced by your `.bash_aliases` to be included in your shell. Shell completion for Kubernetes commands can be configured according to the Kubernetes Cheatsheet above.
Kubeadm is a tool for creating production Kubernetes clusters, which is something we have not needed yet at SIG.
Kind is an alternative to Minikube that moves your cluster into Docker containers. It is considerably faster than Minikube.
K3s is a minified and altered version of Kubernetes, distributed as a single 60mb executable.
Helm is, among other things, a package manager for Kubernetes. It offers many utilities and a vibrant ecosystem.