What will I learn?
You'll learn how to netboot one or more Raspberry Pis - either a single host or a whole cluster. From there you'll learn how to install Kubernetes with K3s, deploy apps, and setup Ingress (incoming network access).
If you've not used or heard of netbooting before, then you may like my article on The New Stack: Bare Metal in a Cloud Native World
You'll learn how all of this works through the course material and the video.
The scripts I developed make it easy to automate everything you'll need, and you can probably compete the setup over a weekend.
What are people saying?
"This had been something I wanted to do but finding all the resources in one place was driving me crazy, your workshop came at just the right time. Thanks for such a great tutorial! " - Donald Gover
"Just got the early bird package! This workshop consists of topics I've always wanted to learn!" - Kim Lehtinen
"This workshop is truly a gem! Saved me a lot of time trying to netboot my Raspberry Pi cluster. Great work!" - Johan Siebens
"That's a lot of Pi" - Raspberry Pi
What format is the course?
- Bash scripts
The "Bigger picture" tier includes a video walk-through and demos of:
- Explaining how everything works
- Setting up a Raspberry Pi 4 to net-boot
- Walk-through of the network topology
- Configuring the server with Ubuntu
- Live demo of net-booting two Raspberry Pis
All tiers will receive free updates, and I'll keep the course up to date the best I can, with your feedback. You'll get the updates by using the link you get from Gumroad.
What do I need for the workshop?
- One or more Raspberry Pi 3s or 4s
- A computer to host an NFS server (this can be an old PC, laptop, VM, etc)
Introduction - why net-boot the RPi?
It took me quite a while to figure out the best way to net-boot the Raspberry Pi, and then to run Kubernetes on it. So I wanted to write this up, and share it with you so that you can focus on enjoying your homelab, rather than battling and automating CLI commands.
How do you use this lab?
- Net-boot one or more Raspberry Pis and run whatever you like
- Net-boot one or more Raspberry Pis and run faasd, or a number of Docker containers
- Net-boot one or more Raspberry Pis and then form a Kubernetes cluster with K3s
Both options are valid, and K3s is really just an add-on. The real work is in making each RPi boot from the network.
Kubernetes can run on your Raspberry Pi usings its SD card. It's now very easy to set up a cluster using tools like k3sup.dev ('ketchup') and arkade for a number of compatible apps. You may have already seen my walk-through: Install Kubernetes to your Raspberry Pi in 15 minutes.
So why netboot?
- SD cards have a limited number of writes, and Kubernetes writes to disk often
- SD cards have limited I/O performance and network storage can reach higher performance
- SD cards are messy to flash, manage and replace
So netbooting is more reliable, faster and makes it trivial to provision new devices simply by creating a few files on your storage server with the scripts you'll find in this repository. If a Raspberry Pi crashes, you don't need to remove its SD card, just reboot it.
What's included in the course?
Introduction - why net-boot the RPi?
Pre-requisites / build of materials
- So why netboot?
- Additional resources
- What kind of storage server do I need?
- What kind of network filesystem do I need?
- My setup
- The netbooting/storage server
- The Raspberry Pis
- The case
- Prepare the Raspberry Pi 4 for netbooting
- Prepare the Raspberry Pi 3B+ for netbooting
Build a Kubernetes cluster with `k3sup`
- Prepare network filesystems for each Raspberry Pi
- Enable the DHCP server
- Enable the NFS server
Taking it further
- Build the cluster
- Deploy your first application
- Managing your nodes
- Getting ingress into your cluster
- Remote access of your cluster from anywhere
- Performance testing
- HA multi-master with etcd
- Static IPs (recommended)
- Troubleshooting and Logs
Video workshop tier (recommended)
On the "Video workshop" tier, you get an additional hands-on video where Alex shows you how to configure your Raspberry Pis and your server.
This video workshop is only available at time of purchase, and is recommended if you want to take your networking and clustering knowledge to the next level.
- 21 March 2021 - (2.1) quicker way to update Kernel, new instructions for faasd and for updating distro after first netboot. Updates for Ubuntu 20.04.
- 24th March 2021 - Video workshop uploaded for all "Video workshop" customers.
- 25th March 2021 (2.2) - New images and diagrams to explain the network topology and show a real cluster
- 5th Apr 2021 (2.3) - fix issue with BOOT_ORDER
Offers & discounts
Want to get 20% off both my eBooks?
Sign up to the Treasure Trove via GitHub Sponsors and get a 20% discount off my eBooks
You may also like:
In Everyday Go - you'll learn examples, patterns and techniques that will fast track your Go knowledge and capabilities
In Serverless for Everyone Else - you'll learn what functions can do for you, how to build, deploy and monitor them.