controller: replicas: 2 strategy: RollingUpdate affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app.kubernetes.io/name operator: In values: - blocky topologyKey: "kubernetes.io/hostname" config: | upstream: default: - https://1.1.1.1/dns-query - https://8.8.8.8/dns-query customDNS: customTTL: 1h mapping: needlestack.boo: 192.168.1.201 "*.needlestack.boo": 192.168.1.201 blocking: denylists: ads: - https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts clientGroupsBlock: default: - ads blockType: NXDOMAIN refreshPeriod: 4h caching: minTime: 5m maxTime: 30m prefetching: true ports: dns: 53 http: 4000 prometheus: enable: true path: /metrics service: # The main service block MUST remain enabled on port 4000 for health checks and metrics main: enabled: true ports: http: port: 4000 dns: enabled: true type: LoadBalancer # THE FIX: Allows Node 1 to proxy queries to your replicas on Node 2 & 3 externalTrafficPolicy: Cluster annotations: {} ports: dns-udp: enabled: true port: 53 protocol: UDP targetPort: 53 dns-tcp: enabled: true port: 53 protocol: TCP targetPort: 53 metrics: enabled: true serviceMonitor: interval: 30s scrapeTimeout: 10s labels: release: kube-prometheus-stack jobLabel: "" targetLabels: [] podTargetLabels: [] prometheusRule: enabled: false labels: {} rules: []