Kubernetes, an introduction
This guide aims to be a light introduction to Kuberenets. What is it, why do we need it, and what will we do with it..
At this point as a third year student, you should already be familiar with Docker. If not, Jamk offers a course on the subject
TODO: Why Kuberenets, what's the point? Kuberenetes takes Docker containers to a whole new level
Kubernetes (aka K8s) is a specification and set of components (API server, scheduler, kubelet etc.). Full kubernetes can be heavy and requires several nodes, which is why different implementations exist for different needs:
- minikube for learning kubernetes
- MicroK8s for lightweight production-grade setups,
- Kind (Kubernetes in Docker) for clusters inside Docker containers
- K3s for edge devices and IoT
- and so on..
For WIMMA production platform, microK8s has been chosen as the Kuberenets implementation.
Terms used in the Kubernetes world#
TODO: add a mini glossary here
Cluster#
Node#
A node is a machine. It can be physical (a raspberry pi computer for example) or it can be virtual (cPouta VM)
Each node is running a kubelet, tiny application that runs on the machine
Each node also has one or more pods
Pod#
The smallest deployable unit in Kubernetes. Analogy: An apartment inside a building.
A pod can contain one or more containers (usually Docker containers).
All containers inside a pod share the same “utilities”:
- IP address (like the apartment’s street address).
- Storage volumes (like a shared fridge).
Node setup#
- Hardware: Raspberry Pi / Pouta VM
- OS: Rocky Linux / Ubuntu Server