Kubernetes, the most popular container orchestration platform out there, needs no introduction. Let’s explore a couple of ways and tools on deploying K8s clusters on your local machine.
Minikube
Minikube is kind of an entry level and best tool for local K8s app development, which comes with the following features:
- It’s free and open source.
- Works with Linux, macOS and Windows.
- You can deploy it as a VM, a container, or even bare-metal. Supports multiple drivers depending on the underlying OS, including: KVM2, VBox, VMWare, HyperV, Docker, Podman, etc.
- Supports advanced features, like Load Balancers.
- Multiple container runtimes.
On a side note, it’s a bit difficult for first-time setup, since you must be familiar with the underlying VM drivers.
Official documentation: https://minikube.sigs.k8s.io/docs/
Docker Desktop
Docker Desktop is a GUI-based application for developing and building containerized apps locally. It’s only available for macOS and Windows though. Other than that:
- It’s easy to install and use (just enable the K8s feature).
- If something breaks, just restart the app.
- Uses docker-shim as container runtime.
- Might consume most of your memory/CPU.
Official documentation: https://docs.docker.com/desktop/
kind
Kind runs Kubernetes inside a Docker container hence being the most lightweight choice. Few things about it:
- Free and open source.
- Deploying cluster is superfast.
- Uses containerd as a runtime (docker-shim is deprecated).
- Can be run in CI environments.
Official documentation: https://kind.sigs.k8s.io
Rancher Desktop
Rancher Desktop can be looked as an alternative to Docker Desktop, but on a positive note, it runs on Linux as well. What’s great about Rancher Desktop:
- Free and open source.
- Easy to install and setup.
- Uses k3s under the hood.
- Supports containerd and dockerd as container runtimes.
Official documentation https://docs.rancherdesktop.io
Worthy alternatives
Conclusion
If you are beginner and not being comfortable with the CLI yet, the best one to start with will probably be Docker/Rancher Desktop. Alternately, kind is the way to go. Feel free to leave a comment below and if you find this tutorial useful, follow our official channel on Telegram.