Netbooting workshop for Raspberry Pi with K3s

OpenFaaS Store
17 ratings

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 25% 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?

Every tier:

  • PDF
  • Markdown
  • 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

Workshop

  • Prepare the Raspberry Pi 4 for netbooting
  • Prepare the Raspberry Pi 3B+ for netbooting

Server configuration

  • 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.

Alex explains the network topology using diagrams and photos

Here's the moment he uses SSH to connect to the net-booted Raspberry Pi!

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.

Changelog:

  • 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.

-Quantity 1+
  • The netbooting workshop markdown files and scripts.

  • PDF
    Yes
  • Scripts
    Yes
  • Original markdown
    Yes
  • The netbooting workshop markdown files and scripts.
  • PDFYes
  • ScriptsYes
  • Original markdownYes

Ratings

4.9
(17 ratings)
5 stars
94%
4 stars
0%
3 stars
6%
2 stars
0%
1 star
0%
Powered by

Checkout

Netbooting workshop for Raspberry Pi with K3s

Enter your info to complete your purchase of Complete Package with Video tutorial

Card

You'll be charged US$99.