Best practice for shard rebalancing when adding nodes

There is an open issue about this problem: #17213. We are still working on ideas for a solution, but in the meantime you can use index.routing.allocation.total_shards_per_node to spread out today's shards or else exclude new shards from the new nodes. Then when the cluster has finished rebalancing you can remove these countermeasures.