- Set up your Raspberry Pi with a static IP.
- Install and configure MicroK8s (or any other lightweight Kubernetes distribution) on your Pi.
- Prepare your Pi's storage
# On your Pi sudo mkdir -p /etc/pihole sudo mkdir -p /etc/dnsmasq.d
- If installing from source, grab the code
Or if installing from the repository:
# On your Pi CHART="./piholechart" git clone https://github.com/santisbon/pi-hole-k8s.git && cd pi-hole-k8s nano $CHART/values.yaml # edit the values
# On your Pi helm repo add santisbon https://santisbon.github.io/charts/ CHART="santisbon/pihole"
- Install the Helm chart which will enforce the installation order. Replace parameters with a secure password and the static IP of your Pi if you didn't do it through the
values.yaml
file. If using MicroK8s type the commands asmicrok8s helm
andmicrok8s kubectl
.# On your Pi RELEASE=pihole NAMESPACE=pihole-n helm install $RELEASE $CHART \ -n $NAMESPACE \ --create-namespace \ --set webPassword=supersecret \ --set externalIP=192.168.XXX.XXX \ --set webPort=8000
- Configure your router to set Pi-hole as your DNS server.
- From your desktop, access the web admin interface at http://192.168.XXX.XXX:8000/admin.
helm upgrade $RELEASE $CHART -n $NAMESPACE
helm uninstall $RELEASE -n $NAMESPACE --wait
kubectl delete namespaces $NAMESPACE