Kubernetes: Configure Dedicated NodeGroup for specific Deployment + Default NodeGroup for everything else

3/13/2020

I'd like to setup a Kubernetes cluster with two node groups: one node group reserved for a specific Deployment, and a second default nodegroup for everything else. I'd like default pod scheduling to not use the dedicated node group and only use the default group.

One strategy is:

  • Taint the dedicated NodeGroup as NoSchedule, so it is not used by default.

  • The one dedicated Deployment uses a toleration no ignore/reverse the NoSchedule taint and uses a nodeAffinity of requiredDuringSchedulingIgnoredDuringExecution to require the dedicated nodegroup.

Would this work? Would this be ideal? Is there a better strategy?

-- clay
kubernetes

1 Answer

3/13/2020

You are spot on. Your approach is correct. It should work

Alternatively you can add default node label to all nodes in default node group. And dedicated node label to dedicated node group. Define node affinity and anti affinity to get the pods scheduled to appropriate nodes

-- P Ekambaram
Source: StackOverflow