Best practices for services on Kubernetes master nodes?

2/2/2017

Are there any best practices for which services should be run on the master nodes? Which better go the workers? I.e., what about

  • kube-dns
  • dashboard
  • Heapster
  • Ingress Controllers

etc.? And why?

Thanks for your help.

-- Stephan
kubernetes

1 Answer

2/8/2017

it depends on how big your cluster is, how powerful your master nodes are and if your running high availability (multiple master nodes). This is all assuming a production environments.

Generally you do not want anything but the mgmt parts running on your master nodes. You do not want to worry about resource conflicts especially the api. The master machines do not need to be very powerful. generally they can be less powerful than your worker nodes unless your dealing with hundreds.

if your running a small cluster with physical nodes(less than 10), you may be able to get away with running stuff on your master. Best way to see is try it out and keep track. it also depends on how powerful your machines are.

If your running multiple masters for HA with physical nodes, it changes the outcome if your dealing with clusters up to 20. Probably ok but keep track and test just like your smaller nodes.

if you use VMS, you should not need to do worry as you can just size them accordingly.

In mine(VMs), i do have our ingress controller running on the master but dashboard and heapster are running on workers. When we move to bare metal, we will have hundreds of servers so will be using multiple masters with just the mgmt running on them.

Personally, i would just use the master to run the mgmt services and leave the rest to the workers.

-- JamStar
Source: StackOverflow