Node pools are updated in parallel by default. This can potentially
causing two issues:
Quota issue
For each node pool, it will create one surge node, so that N node pools will
create N surge nodes when they are updated in parallel. This may result in
resource exhaustion if there is limited extra capacity for creating those
surge nodes.
PDB deadlock issue
Draining more than one node at a time could potentially cause PDB deadlocks.
This doc shows how to specify a node pool update policy to configure the
maximum number of nodes to be updated concurrently during node pool update,
which can help avoid the two issues mentioned. 0 means preserving the current
parallel behavior, which is the default value. 1 means updating the node pools
sequentially.
Note that while sequential update can avoid the two issues, it could make the
node pool update process take longer time than updating in parallel.
Configure node pool update policy
In user cluster seed config user-cluster.yaml, you can configure the node pool
update to be done sequentially as follows:
The maximumConcurrentNodePoolUpdate can be set to an arbitrary integer value
to configure the number of node pools you want to update at the same time.
The node pool update policy applies to both node pool update and
upgrade, but not create. Also in case any node pool
update/upgrade encountered issues and got stuck, the current behavior is that we
will block there and won't move on to update next node pool.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-03-05 UTC."],[[["Node pools are updated in parallel by default, which can lead to quota issues due to the creation of surge nodes and potential PDB deadlocks from draining multiple nodes simultaneously."],["Configuring the `maximumConcurrentNodePoolUpdate` in the user cluster seed config allows limiting the number of node pools updated concurrently, with a value of 1 enforcing sequential updates."],["Setting `maximumConcurrentNodePoolUpdate` to 0 preserves the default parallel behavior, while setting it to an integer N will allow N number of node pools to be updated concurrently."],["While sequential updates mitigate quota and PDB deadlock issues, they may extend the total time required for node pool updates compared to parallel updates."],["The node pool update policy will block any following node pool update if an update or upgrade is stuck."]]],[]]