Part 0 (Prologue) - Let's talk about the DNS
Before the clusters, castles, and catastrophic over-engineering, there was DNS, a glorified phonebook with delusions of grandeur.

Search for a command to run...

Series
Because one Pi-hole was too simple, and apparently so was one Raspberry Pi.
A multi-part journey into building a highly available, encrypted, ad-blocking DNS on a Kubernetes Raspberry Pi cluster.
Before the clusters, castles, and catastrophic over-engineering, there was DNS, a glorified phonebook with delusions of grandeur.

When you need a safe, you build an impregnable fortress. Then you add a moat. Then redundant DNS. Then Kubernetes. Then you start calling it “infrastructure.”

When your IoT devices ask for network access, you give them a subnet, a firewall, a DNS policy, and the kind of trust normally reserved for raccoons near open trash cans.

When your DNS queries head upstream, you don't just let them wander into the internet. You wrap them in encryption, give them a guarded tunnel, and trust public resolvers the way you trust a stranger asking to borrow your router.

Some days you deploy Pi-hole on Kubernetes. Other days Kubernetes deploys emotional damage and puts you on a high-availability support plan.

Some days the Pi-holes agree. Other days one of them develops opinions, and suddenly “redundancy” becomes a custody battle for DNS settings.
