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 page provides documentation for \u003ccode\u003eUpgradeSettings\u003c/code\u003e within the \u003ccode\u003eGoogle.Cloud.Container.V1\u003c/code\u003e namespace, specifically for managing node upgrades in Google Kubernetes Engine (GKE).\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eUpgradeSettings\u003c/code\u003e class, which implements interfaces like \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, and \u003ccode\u003eIDeepCloneable\u003c/code\u003e, controls the upgrade parallelism and disruption level of node pools.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version documented is 3.33.0, while the information provided is based on version 2.5.0, and the documentation covers versions ranging from 2.3.0 to 3.33.0, each linked to its corresponding documentation page.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eMaxSurge\u003c/code\u003e and \u003ccode\u003eMaxUnavailable\u003c/code\u003e properties define the upgrade strategy by controlling the number of additional nodes created during upgrades and the number of nodes that can be unavailable simultaneously, respectively.\u003c/p\u003e\n"],["\u003cp\u003eThe documentation explains that upgrades will inevitably introduce some level of disruption, even if \u003ccode\u003eMaxUnavailable\u003c/code\u003e is set to zero, because workloads must be moved to the new nodes.\u003c/p\u003e\n"]]],[],null,[]]