I'm trying to set up a bare metal Kubernetes cluster using a mix of consumer-grade devices and some VPSs running Debian 12. However, I've encountered a major hurdle: some of the VPSs are missing critical kernel modules like `br_netfilter` and `overlay`, which are usually required for a standard Kubernetes installation. I've contacted my VPS provider about enabling these modules, but I'm not optimistic they'll resolve the issue.
I'm looking for ways to bypass the need for these networking modules. I heard that kubelet no longer checks for `br_netfilter` at startup, since the dependency is now on CNI plugins. Do any of these plugins not require `br_netfilter`? I've heard that kubenet and flannel do, but maybe there are alternatives? Also, is there any kind of virtualization trick I could use to create an environment on the VPS that would allow these modules to be available? I know that Docker/OCI containers and LXC containers rely on the host's kernel modules, but could I run a full QEMU VM instead? Is that feasible if the environment is likely an LXC container?
2 Answers
Have you considered switching to Talos Linux? It's built specifically to run Kubernetes and comes pre-packaged with everything you need for installation. Just a thought!
You might want to check out this link for loading kernel modules: [Cyberciti](https://www.cyberciti.biz/faq/linux-how-to-load-a-kernel-module-automatically-at-boot-time/). But keep in mind, if the modules aren’t available in your distro at all, this won't help you. Have you tried running `sudo modprobe br_netfilter`? You might get an error like `modprobe: FATAL: Module br_netfilter not found...`, which means it’s really missing. That’s your main hurdle right there!
Right! That’s exactly what happened to me. I got that fatal error too since it’s just not present in Debian 12.