Notebook placement failure when using Cluster Autoscaling

I’m trying to follow the documentation for Efficient Cluster Autoscaling. I haven’t seen a complete example for this, so I think i’ve misinterprented the docs in writing my config files. When I follow the steps below, my notebooks always fail to find somewhere to run.

The documentation says:

  • Setup a node pool (with autoscaling), a certain label, and a certain taint.If you need help on how to do this, please refer to your cloud providers documentation. A node pool may be called a node group.
  • The label: hub.jupyter.org/node-purpose=user NOTE : Cloud providers often have their own labels, separate from kubernetes labels, but this label must be a kubernetes label.
  • The taint: hub.jupyter.org/dedicated=user:NoSchedule NOTE : You may need to replace / with _ due cloud provider limitations. Both taints are tolerated by the user pods.

This doesn’t mention the “taints” parameter on the nodegroup, but I see that in the examples cluster configs.

To each of my nodegroups, I added

taints:
special: “true:NoSchedule”

and tried to label them with this, which I don’t know if is correct or not:

labels:
hub.jupyter.org_node-purpose: user

To my jhub helm config, I added:

scheduling:
userPods:
nodeAffinity:
matchNodePurpose: require

Any help on this from someone who’s gotten it to work would be greatly appreciated.