Kubernetes at home for fun and education
Homekube.org aims to set up a full operational kubernetes environment on a baremetal Ubuntu server. The focus is getting something done first and improve your kubernetes skills step by step along a happy path.
Following this tutorial you should have Kubernetes and a sample application installed along with the most useful and popular administration components on your local Ubuntu server(s):
App | Tutorial | Service (AMD64) | Service (ARM64 /Raspberry) |
---|---|---|---|
'Who am I' echo service | whoami.md | live | live |
Kubernetes dashboard | dashboard.md | login demo/demo | login demo/demo |
Grafana monitoring | grafana.md | login demo/demo | login demo/demo |
Prometheus metrics | prometheus.md | live | live |
Testing payloads and response times | workload-testing.md | Grafana open 'Request Handling Performance' |
Project philosophy
There are many ways to install Kubernetes locally but for simplicity we'll follow Ubuntu's recommended MicroK8s installation recipes. With just a few commands we will setup a Kubernetes single node locally. For all further installs we'll primarily use helm commands so we are very close to what you'd do in a cloud environment. For more complex setups including Multi-Host Multi-Cluster on a pile of Raspberrys see also the installation variants.
Requirements
Server requirements are:
- A 64bit PC or arm64 (e.g. Raspberry 4) or a Virtual Machine on any supporting OS
- An Ubuntu 22.04 LTS (20.04 LTS or 18.04 LTS will do also or alternatives linux distros supporting snapd)
- At least 20G of disk space and 4G of memory are recommended
- An internet connection
Base Installation
Host | Container |
---|---|
-> Host installation | -> 1) Setup environment |
-> 2) Provision container(s) | |
Read more about Linux containers | |
Very easy | A few simple steps required |
Single host / Single node | Single host / multiple clusters |
Not extendible | Extendible see installation variants |
Service installation
Quick tour
Dashboard -> Helm I -> Helm / Echo Service -> Echo service II
Advanced tour
Quick tour -> Ingress -> Dashboard II -> Nfs -> Prometheus Metrics -> Grafana
Pro tour
Advanced tour -> Cert manager -> Testing response times and payloads