Kubernetes Homelab

Updated: 2 August, 8.44 am Central European Time

Today I’d like to introduce my little home lab.

This is just the initial post and will be updated regularly

The aim of the home lab is to deepen my knowledge and skills in Kubernetes. My goal is to get as close as possible to real-world scenarios.

Of course, I also experiment with things that have nothing to do with business or IT.


Setup

Hardware

Device Hostname Function IP-WIFI IP-LAN
Raspberry Pi 4 / 8GB winterfell Control Plane 210 211
Raspberry Pi 4 / 1GB worker01 Worker Node 212 213
Raspberry Pi 4 / 1GB worker02 Worker Node 214 215

Network
192.168.178.0/24

Storage
USB-SSD with XFS filesystem

Software

Operating System

Kubernetes distribution

Administration Tools

kubi_01

K3S Cluster

What is running on the cluster?

Monitoring

Development

Production / Private

Testing

  • many :smiley:

Apply an deployment

Here you can see how to deploy an deployment with kubernetes.
In this case it is a minimal Ubuntu Container.
Scaling an container is a bit like RAID. It depents on the settings but basicly it works similar.
Examble: Scaling the Ubuntu Container to 10 means 10 instances of the same container. If 1 or 2 (depents on the settings) are failling, the users won’t notice.
kubi_02

5 Likes

Audiobookshelf is a more complex project.

I’ve been running it with Docker for about two years. Now I’d like to migrate it to the Kubernetes cluster. Audiobookshelf itself isn’t a problem at all, but migrating the data will be interesting.

3 Likes

This is an important part of home labs. A safe place to fail, learn, fail again and learn some more.

2 Likes

Yes, absolutely!

The great thing about Kubernetes is that you can use namespaces.

When I’m testing a new app, I create a new namespace to which everything is linked.

If my test goes wrong, I delete the namespace and everything related to the app is deleted as well.

If everything went well and is working, I do the same thing. I then adjust the desired namespace in the underlying YAML file (e.g. fun) and recreate the app in the new, correct namespace.

Of course, only if I actually intend to use the app after my tests :sweat_smile:

At the same time, I then have ‘production-ready’ YAML so I can deploy the app to a cluster at any time.

3 Likes

Thanks for sharing your expertise with us @toadie !

3 Likes