Closed
Description
People create clusters at a wide range of sizes. People then resize clusters to a wide range of sizes. Our cluster addons are configured statically, and do not respond to such changes in size. This causes problems in some cases:
- The default addons don't all fit on sufficiently small clusters (e.g. create a cluster with a single f1-micro on GCE, prepare to feel the pain)
- The default addons waste a large proportion of resources on small clusters -- does my two node cluster 300MiB for heapster? Will it ever need more than one DNS pod?
- The default addons don't scale properly to large clusters - heapster with 300MiB of memory isn't going to cut it on even some medium sized clusters, let alone clusters with a hundred nodes (example). More than one DNS pod will be useful for availability.
Some really simple control logic should be able to make the situation better by listing the nodes in the cluster and updating the addon RCs using a few basic rules. It could be part of the node controller, or be a very small container that runs on the master or even in the user's cluster (but it better be very small to justify its benefits).