Quick Fix: “CrashLoopBackoff” While Building a Kubernetes Cluster with Ubuntu 22.04 on the Raspberry Pi

Normally, I like to make videos for Linux and Container-related things – it’s my favorite way to teach and inform. But some things don’t translate as well to videos, and this is one of them. Recently, I ran into an issue that I’ve been trying to solve for some time, where initializing a Kubernetes cluster on Ubuntu 22.04 seems to fail, specifically on the Raspberry Pi. Although I did ultimately find something while searching the web that led to my resolving this, search results were generally unhelpful, and neither was Stack Overflow. So what I wanted to do, was to create this article just so I could make sure that anyone else Googling for answers does find something.

Here’s the issue I ran into. For some reason, initializing Kubernetes clusters on Ubuntu 22.04 fails on the Raspberry Pi. More specifically, Flannel doesn’t seem to launch, with it stuck on “CrashLoopBackoff” most of the time. And not only that, the coredns pods will tend to stay stuck on “ContainerCreating” for eternity. Another symptom is that you’ll find errors in /var/log/syslog complaining about /run/flannel/subnet.env not being found. Oh, and another symptom. RPC errors will be mentioned in the syslog as well, and also complains about not being unable to create the sandbox.

Blogs and howto’s mention many “fixes” for this issue, but for me I didn’t have any luck there. Some of them will have you create the /run/flannel/subnet.env file manually – but you shouldn’t have to do that, it’s not your job. (That file should be created automatically). I’ve seen at least one blog post mention the order matters regarding when you apply Flannel (nonsense) and not to be outdone, the classic “remove the directory and reboot” trick that also never seemed to work for me.

So, what’s the fix?

Are you ready?

Here you go…

sudo apt install linux-modules-extra-raspi

Yeah, that’s literally it. I’m not kidding. See for yourself. You’re all set. Profit. Enjoy. I know, right?!

Thanks to this completely unrelated bug report that gave me the idea to install this package and ultimately led to my writing this article. It’s my sincere hope that this blog post finds its way into the Google searches of whoever out there needs this.