Resource Limits
Configure CPU and memory limits for BIND9 pods.
Setting Resource Limits
Configure resources in the Bind9Instance spec:
apiVersion: bindy.firestoned.io/v1alpha1
kind: Bind9Instance
metadata:
name: primary-dns
spec:
replicas: 2
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "512Mi"
Recommended Values
Small Deployment (Few zones)
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "512Mi"
Medium Deployment (Multiple zones)
resources:
requests:
cpu: "200m"
memory: "256Mi"
limits:
cpu: "1000m"
memory: "1Gi"
Large Deployment (Many zones, high traffic)
resources:
requests:
cpu: "500m"
memory: "512Mi"
limits:
cpu: "2000m"
memory: "2Gi"
Best Practices
- Set both requests and limits - Ensures predictable performance
- Start conservative - Begin with lower values and adjust based on monitoring
- Monitor usage - Use metrics to right-size resources
- Leave headroom - Don’t max out limits
- Consider query volume - High-traffic DNS needs more resources
Monitoring Resource Usage
# View pod resource usage
kubectl top pods -n dns-system -l app=bind9
# Describe pod to see limits
kubectl describe pod -n dns-system <pod-name>