Pi-hole #
Pi-hole is a Linux network-level advertisement and Internet tracker blocking application that acts as a DNS sinkhole. It protects all devices on your network from unwanted content without needing individual software installations.
Quelle #
Die Anwendung wird als Helm-Chart von mojo2600 bereitgestellt. This Pi-hole deployment includes:
- Pi-hole: The core ad-blocking and DNS server.
Der frühere Sidecar cn2pihole ist entfallen. Er spiegelte die Zonen des Providers stündlich in eine Hosts-Datei und dnsmasq-Direktiven, damit die Namen auch bei einem Ausfall von Core Networks lokal auflösen. Diese Aufgabe erfüllt jetzt der warming-CronJob aus apps/corenetworks-dns-operator zusammen mit serve-expired in apps/unbound — deckungsgleiche Namensmenge, zusätzlich MX, und alle 10 Minuten statt stündlich.
Dokumentation #
- Pi-hole: Pi-hole Official Website
- Pi-hole Kubernetes Helm Chart: GitHub Repository
Funktion #
Pi-hole fungiert als DNS-Server für das lokale Netzwerk. Wenn ein Gerät eine DNS-Anfrage stellt, um eine Domain aufzulösen, prüft Pi-hole, ob diese Domain auf einer der Blocklisten steht. Wenn ja, wird die Anfrage blockiert und das Gerät kann keine Verbindung herstellen. Anfragen an legitime Domains werden an den eigenen rekursiven Resolver (apps/unbound) weitergeleitet — bewusst als einziger Upstream. Der Rückfall auf Google liegt eine Schicht höher in apps/nameserver und greift nur, wenn Pi-hole oder Unbound wirklich ausfallen; ein zweiter Upstream hier könnte bei einem Ausfall der autoritativen Nameserver mit einem schnellen SERVFAIL die noch gültige Antwort aus dem Unbound-Cache überholen. Dies blockiert Werbung und Tracker auf allen Geräten im Netzwerk, ohne dass auf jedem Gerät eine separate Software installiert werden muss.
Lokale Anpassungen #
Die Konfiguration erfolgt über die values.yaml-Datei.
Wichtige Einstellungen #
- The deployment uses the official Pi-hole Helm chart.
- The Pi-hole service is exposed as a LoadBalancer with specific IPv4 and IPv6 addresses.
- Ingress is configured for the Pi-hole web interface; the hostname is set in the manifests.
- Persistent storage uses Longhorn-backed PVCs.
- Patches are applied to the Pi-hole service and deployment for dual-stack support and web server port configuration.
Installation #
Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/pihole-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:
1kubectl kustomize --enable-helm apps/pihole | kubectl apply -n pihole -f -Abhängigkeiten #
- A running Kubernetes cluster.
- A configured Ingress controller (e.g., Traefik).
- A certificate management solution (e.g., cert-manager) to provide TLS certificates, as configured in
certs.yaml. - MetalLB für die Zuweisung von LoadBalancer-IPs.