Been using Pi-hole for several years now and Pi-hole is absolutely a lifesaver. If you are not already using a DNS sinkhole, have a look at the project. But recently I updated my pfSense hardware and started wondering if things could be done a bit more simple - by adding my DNS sinkhole directly to the same hardware. Turns out you can; pfSense has a package called pfBlockerNG, that aims to basically do something like Pi-hole. It's not strictly for ad-blocking, but rather for general-purpose DNS filtering. This makes pgBlockerNG potentially a lot more powerful than Pi-hole, but it also means the learning curve is a bit steeper. So if all you're looking for is a DNS adblock, you are fine with Pi-hole.
Setup: K3s v1.24.8+k3s1 on Ubuntu 20.04 (AMD64). Disabled servicelb and traefik. Installed metalLB and traefik after the initial installation. Using local-path storage class. It is not a cluster solution. I.e., you cannot scale this setup - replicas: above 1 will not work. A ReadWriteOnce volume can only be mounted to a single pod (unless the pods are running on the same node).