/homekube

Install and learn Kubernetes at home with hands-on examples and live demos for popular add-ons like Dashboard, Ingress, Grafana, Prometheus, Nfs, Cert-manager, Oauth2-proxy, Postgres and Keycloak

Primary LanguageShellMIT LicenseMIT

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