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.
Status #
Deployment #
Quelle #
Die Anwendung wird als Helm-Chart von mojo2600 bereitgestellt. This Pi-hole deployment includes:
- Pi-hole: The core ad-blocking and DNS server.
- Pi-hole Helper: A custom helper application (
cn2pihole) that likely provides additional functionality or integrations for the Pi-hole instance. This helper downloads the zones entries to persist a cache in case of upstream dns failures.
Dokumentation #
- Pi-hole: Pi-hole Official Website
- Pi-hole Kubernetes Helm Chart: GitHub Repository
- Pi-hole Helper: Private repository (
git.zyria.de/pyrox/cn2pihole)
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 einen konfigurierten Upstream-DNS-Server (hier Google DNS) weitergeleitet. 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 along with a custom
app-templatechart for the helper. - The Pi-hole service is exposed as a LoadBalancer with specific IPv4 and IPv6 addresses.
- Ingress is configured for the Pi-hole web interface at
pihole.zyria.de. - Persistent storage is configured using
hostPathvolumes. - 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.