MiniKube, Kubeadm, Kind, K3S, how to get started on Kubernetes?

A question we all had when we wanted to start with Kubernetes, was “how can I do my first tests?”. In this article, I will present you 4 different technologies you can use to begin with Kubernetes on your own computer. For each one, we will have a short description of the solution and see the pros and cons.

Before starting, make sure you have minimal knowledge of what Kubernetes is.

minikube

MiniKube

MiniKube isusually the first Kubernetes technology found when someone wants to begin (Kubernetes official documentation offers a tutorial to deploy your first cluster using miniKube).

It is a very simple solution to install on your laptop and it is designed for learning and testing. When started, it will deploy a single node cluster (the smallest size).

Minimum requirements for the host machine:

  • CPU: 2
  • Memory: 2 GB
  • Disk space: 20 GB

This is the easiest way to start to familiarize with the command line kubectl.

The inconvenience of this solution is this is not possible to add other nodes, and by consequence, to discover how the architecture really works and the full power of Kubernetes.

minikube

Cluster MiniKube architecture

 

PROS CONS
  • Easy to install
  • Light
  • Too minimal

 

kubeadm

Kubeadm

Kubeadm is the “hard way” to begin with Kubernetes. With this solution, you will be able to bootstrap a minimum viable Kubernetes cluster that conforms to best practices. The cluster minimal size is composed of two nodes:

  • Master node
  • Worker node

and you can add as many workers as you want.

But this solution is quite heavy to run on a laptop. Each node should be deployed in a VM and the minimal requirements are:

  • Memory: 2 GB
  • CPU: 2 (only for the master)

If you want to deploy a cluster with several nodes you must have a quite powerful computer. But you will be able to discover the full potential of Kubernetes. Here is a tutorial to help you to deploy your first Kubernetes cluster  using Kubeadm.

Kubeadm

Example of a cluster deployed with Kubeadm

Furthermore, Kubeadm lets you choose the container runtime but to begin I recommend you to use Docker which is the one configured by default. This is useful for the beginners, who will be able to check the containers created by Kubernetes with docker commands.

PROS CONS
  • Full architecture production level
  • Use docker containers
  • Installation more challenging
  • Very heavy to run on a single laptop
  • Only one node master authorized

 

kind

Kind

Kind is another tool to deploy a Kubernetes cluster locally. Its specificity is that the cluster will be deployed inside a Docker container.

Kind

Example of kind cluster with 1 master and 2 workers

This solution allows you to deploy all type of clusters:

  • Single node
  • 1 master and several workers
  • Several masters and several workers

These clusters are very easy to deploy. It can be done from a very simple YAML file:

All the instructions for Kind installation and configuration are well described in the Kind documentation.

The main inconvenience for a beginner is that as the cluster is deployed inside a docker container, so the network management to get access to the cluster is more difficult.

PROS CONS
  • Very easy to install
  • Cluster very easy to deploy
  • Network external access to the cluster more complicated

 

k3s

K3S

K3S is a light Kubernetes version developed by Rancher. It has been created for production use on small servers, IoT appliances, etc. The binary is less than 50 Mo and it can be run on a very small VM. The minimal requirements are:

  • Linux 3.10+
  • 512 MB of ram per server
  • 75 MB of ram per node
  • 200 MB of disk space
  • x86_64, ARMv7, ARM64

A light version means fewer functionalities:

  • All functionalities tagged “legacy”, “alpha”, “non-default” have been removed
  • All add-ons have been removed
  • Default storage is SQLlite3 instead of etcd3
  • Automatic TLS management

The container runtime used by default is containerd.

So K3S is a very good alternative to Kubeadm if your laptop is limited as you can test Kubernetes on smaller VMs.

Furthermore, K3S installation and cluster deployment  are very easy. And you can create clusters with multi masters.

PROS CONS
  • Very light version of Kubernetes
  • Very easy to install
  • Cluster very easy to deploy
  • Some functionalities are missing
  • Does not use Docker as default container runtime.

 

To conclude, all these technologies are a good way to begin with Kubernetes. You just have to make a choice regarding your material and your objectives. But if I have to recommend one of them, I will go for Kubeadm. You may spend more time configuring your cluster but you will have a great overview of Kubernetes possibilities.

Cyprien Lecallier

Cyprien Lecallier

Cyprien is a Site Reliability Engineer (SRE) at Padok. He is passionate about DevOps technologies, and he loves facing new challenges every day.

What do you think? Leave your comments here !