AdGuard on Kubernetes
AdGuard
AdGuard Home is a network-wide software for blocking ads & tracking
Adguard is similar to Pi-Hole with more features. Comparison of Adguard to Pi-Hole
The below configuration has worked for me. I am a big fan of helm charts, and I’ll be using AdGuard chart
Configure chart
Pull chart locally
helm repo add billimek https://billimek.com/billimek-charts/
helm fetch billimek/adguard-homeUpdate deployment to use hostNetwork
#templates/deployment.yaml
...
spec:
hostNetwork: true
securityContext:
...Enable configAsCode, update bind_host to Kubernetes host IP in values.yaml
# values.yaml
configAsCode:
enabled: true
config:
bind_host: 192.168.0.101
bind_port: 3000
dns:
bind_host: 192.168.0.101Update securityContext to run as a privileged pod, drop all capabilities and add NET_BIND_SERVICE
# values.yaml
securityContext:
privileged: true
capabilities:
drop:
- ALL
add:
- NET_BIND_SERVICEAdd nodeSelector to assign a pod to that node.
# values.yaml
nodeSelector:
kubernetes.io/hostname: node3Deploy helm chart
helm install adguard-homeWait for AdGuard pods.
kubectl get pods
NAME READY STATUS RESTARTS AGE
adguard-adguard-home-67975f7768-v6bg9 1/1 Running 0 43hConfigure your devices to use your AdGuard Home
Once we’ve established that AdGuard Home has deployed, you can use it on other computers in your network by changing their system DNS settings to use the Kubernetes node’s IP address (which is 192.168.0.101 in our case).