How to Re-deploy CoreDNS Pods Only to the Master Nodes.
Problem
Re-deploy CoreDNS pods only to the master nodes as part of performance improvement. Process to achieve this by editing Clusteraddon and by using taints.
Environment
- Platform9 Managed Kubernetes - 5.4.0 and Higher.
Procedure
To implement this via the taint and toleration method, the steps to be performed is to set watch flag to false in CoreDNS clusteraddon object and manually edit the CoreDNS deployment to add taints.
x
Edit watch flag to false in clusteraddon of CoreDNS:After editing:
Name: 91bc678c-7da5-41d0-be51-c295cd0a6453-corednsNamespace: defaultLabels: sunpike.pf9.io/cluster=91bc678c-7da5-41d0-be51-c295cd0a6453 type=corednsAnnotations: <none>API Version: sunpike.platform9.com/v1alpha2Kind: ClusterAddonSpec: Cluster ID: 91bc678c-7da5-41d0-be51-c295cd0a6453 Override: Params: Name: dnsMemoryLimit Value: 170Mi Name: dnsDomain Value: cluster.local Type: coredns Version: 1.8.0 Watch: false < ---------------------Add toleration to CoreDNS deployment:
nodeSelector: node-role.kubernetes.io/master: "" <--------- Add priorityClassName: system-cluster-critical restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: coredns serviceAccountName: coredns terminationGracePeriodSeconds: 30 tolerations: - key: CriticalAddonsOnly operator: Exists - effect: NoSchedule <--------- Add key: node-role.kubernetes.io/master <--------- Add operator: Equal <--------- Add value: "true" <--------- AddThe CoreDNS pods will be re-deploy to master node/s only:
kube-system coredns-84fffcdbd6-52p4j 1/1 Running 0 10s 10.20.73.133 10.128.147.114 <none> <none>kube-system coredns-84fffcdbd6-shng9 1/1 Running 0 10s 10.20.73.134 10.128.147.114 <none> <none>kube-system coredns-88d66bcc7-rlxqr 1/1 Terminating 0 35m 10.20.165.196 10.128.147.204 <none> <none>Additional Information
The changes made will not persists across cluster upgrade. The new version CoreDNS yaml post upgrade wipes out the taints and toleration.
Was this page helpful?