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.

Edit watch flag to false in clusteraddon of CoreDNS:

# kubectl edit clusteraddons -n default 91bc678c-7da5-41d0-be51-c295cd0a6453-coredns

After editing:

# kubectl describe clusteraddons -n default 91bc678c-7da5-41d0-be51-c295cd0a6453-coredns
Name:         91bc678c-7da5-41d0-be51-c295cd0a6453-coredns
Namespace:    default
Labels:       sunpike.pf9.io/cluster=91bc678c-7da5-41d0-be51-c295cd0a6453
              type=coredns
Annotations:  <none>
API Version:  sunpike.platform9.com/v1alpha2
Kind:         ClusterAddon

Spec:
  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:

The CoreDNS pods will be re-deploy to master node/s only:

Additional Information

The changes made will not persists across cluster upgrade. The new version CoreDNS yaml post upgrade wipes out the taints and toleration.

Last updated