These upgrade settings control the level of parallelism and the level of
disruption caused by an upgrade.
maxUnavailable controls the number of nodes that can be simultaneously
unavailable.
maxSurge controls the number of additional nodes that can be added to the
node pool temporarily for the time of the upgrade to increase the number of
available nodes.
(maxUnavailable + maxSurge) determines the level of parallelism (how many
nodes are being upgraded at the same time).
Note: upgrades inevitably introduce some disruption since workloads need to
be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
this holds true. (Disruption stays within the limits of
PodDisruptionBudget, if it is configured.)
Consider a hypothetical node pool with 5 nodes having maxSurge=2,
maxUnavailable=1. This means the upgrade process upgrades 3 nodes
simultaneously. It creates 2 additional (upgraded) nodes, then it brings
down 3 old (not yet upgraded) nodes at the same time. This ensures that
there are always at least 4 nodes available.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThis webpage provides documentation for \u003ccode\u003eUpgradeSettings\u003c/code\u003e within the \u003ccode\u003eGoogle.Cloud.Container.V1\u003c/code\u003e namespace, specifically for managing node pool upgrades in Google Cloud.\u003c/p\u003e\n"],["\u003cp\u003eThe page lists various versions of the documentation, starting from version 2.3.0 up to the latest version, 3.33.0, with each version having its own dedicated page, including version 2.7.0.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eUpgradeSettings\u003c/code\u003e control upgrade parallelism and disruption by defining \u003ccode\u003emaxUnavailable\u003c/code\u003e (simultaneously unavailable nodes) and \u003ccode\u003emaxSurge\u003c/code\u003e (temporary additional nodes).\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eUpgradeSettings\u003c/code\u003e class implements several interfaces, including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, and provides properties \u003ccode\u003eMaxSurge\u003c/code\u003e and \u003ccode\u003eMaxUnavailable\u003c/code\u003e as integers.\u003c/p\u003e\n"],["\u003cp\u003eThe upgrade process, explained through an example, ensures a minimum number of available nodes by strategically adding new nodes and removing old ones, while taking into account the set values of \u003ccode\u003emaxSurge\u003c/code\u003e and \u003ccode\u003emaxUnavailable\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,[]]