Autoscaling manages the number of nodes in the pool: if the current ones cannot cope with the load, it will deploy a new one; if some of the nodes are idle with no load, it will remove them. How it works:
- A new node will be deployed when a new pod (application container group) needs to be run, but the current nodes have no free resources to do it. The amount of free resources is estimated by "resources.requests".
- Nodes that have been idle with no pods for 20 minutes straight will be removed.
- If you manually delete nodes that have pods (set the "current number of nodes" lower than the autoscaling have deployed) the system will check the load on the pool after 20 minutes. If the current nodes are not enough to run the required pods it will add nodes again, if there are enough it will not add.
Autoscaling has limitations: it does not create more nodes than "maximum number of nodes" and does not remove nodes if the "minimum number of nodes" is reached. You set these limits on the "Pools" tab.