For the core
nodes where the hub and configurable-hub-proxy run it kind of depends on your spawner (assuming KubeSpawner with z2jh) and how you’re doing auth, networking, storage, and database right? For reference, our core
nodes are 8CPUx32GB RAM and we never have resource issues with those because the hub doesn’t really go above 1CPU. I’ve got 2K notebook pods in a testing environment right now and the hub CPU usage is averaging about .5 with RAM <512MB. The scale testing I’m doing [1] is very mechanical though, i.e. there isn’t a lot of random user creates or deletes. Each node (core, user, whatever) gets a certain standard set of vendor (IBM Cloud Kubernetes Service) and system pods though for networking, helm (tiller), logging and statsd metrics for monitoring. So our core
nodes are under-utilized and the limiting factor on our user
nodes is based on the CPU/RAM guarantees for the singleuser notebook pods (oh and keep in mind you have to kill bitcoin miners on your user nodes depending on how open your hub is).
[1] Scheduler "insufficient memory.; waiting" errors - any suggestions? - #4 by mriedem