Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

Pi-hole

Inhaltsverzeichnis

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
#

Status
Uptime
Ping
Avg Response Time
Certificate Expiration
Response Time

Deployment
#

Argo 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
#

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-template chart 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 hostPath volumes.
  • 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.
Per E-Mail antworten
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin