Netbooting workshop for Raspberry Pi with K3s
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).
Get 15% off with code "pocket-cloud" until we get to 300 sales 🐳
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 Twitter Account
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?
- So why netboot?
- Additional resources
- What kind of storage server do I need?
- What kind of network filesystem do I need?
Pre-requisites / build of materials
- 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
- Prepare network filesystems for each Raspberry Pi
- Enable the DHCP server
- Enable the NFS server
Build a Kubernetes cluster with `k3sup`
- Build the cluster
- Deploy your first application
- Managing your nodes
- Getting ingress into your cluster
- Remote access of your cluster from anywhere
Taking it further
- 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
- Sept 2021 - additional comments for bash scripts
- March 2022 - added an ePub file and updates on use-cases
Offers & discounts
Want a discount? Sign up to my Insiders' Portal to get 20% off all 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.
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
"This workshop is truly a gem! Saved me a lot of time trying to netboot my Raspberry Pi cluster. Great work Alex!" - Johan Siebens, Cloud Consultant, Hashicorp Ambassador
"Net-booting is like magic! Here's a progress update for my Raspberry Pi home lab. Thanks Alex for the workshop" - Kyle Brennan, Tech Lead at GitPod
"I'm starting a Kubernetes Home Lab; who else wants to join the journey? And yes! I bought Alex's workshop last year; you should take a look." - Carlos Santana, Kubernetes 1.25 release team
"4x Raspberry Pis net-booting from a ubuntu server. Ready to be clustered with k3sup. I can definitely recommend Alex Ellis' netbooting course! #Kubernetes" - Tom Withers DevOps Consultant, Hashicorp Ambassador
"Doing the amazing workshop raspberry pi netbooting from Alex Ellis - the metal machines are alive! Thanks, Alex for doing such great training that teaches us some basics of netbooting. Now I want to netboot everything" - Carlos Panato, Site Lead at Chainguard
The netbooting workshop markdown files and scripts.