What's the recommended way to scale down a cluster?

Hello,
what I can already say is that a part resources are allocated to applications which manage the cluster (logs, auto-scaling, networking, metrics scraping…) and allocation are already optimized as much as we can.

The thing is allocation isn’t usage. If we reduce allocation of an app consuming less than allocated values to stick to the average usage it will end to issues when the app will have resource pressure. Autoscaling could fail, certificate couldn’t be generated or dns records couldn’t be done.

To answer to your question, you can but it’s not recommended since kube handles it for you thru auto-scaler. It watches if on a node deletion, all apps can fit to remaining nodes. If yes, future deleted node is drained then deleted.

If you still want to do it by your own, this answer could help.