-
Notifications
You must be signed in to change notification settings - Fork 42.8k
Node upgrades: provision new nodes #6088
Copy link
Copy link
Closed
Labels
area/upgradepriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.Must be staffed and worked on either currently, or very soon, ideally in time for the next release.sig/cluster-lifecycleCategorizes an issue or PR as relevant to SIG Cluster Lifecycle.Categorizes an issue or PR as relevant to SIG Cluster Lifecycle.
Milestone
Metadata
Metadata
Assignees
Labels
area/upgradepriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.Must be staffed and worked on either currently, or very soon, ideally in time for the next release.sig/cluster-lifecycleCategorizes an issue or PR as relevant to SIG Cluster Lifecycle.Categorizes an issue or PR as relevant to SIG Cluster Lifecycle.
See issue #6079 as the roll-up for node upgrades.
tl;dr:
Update MIG template, then call a MIG rollingupdate.
More details:
When upgrading nodes, an in-place upgrade must worry about leftover state on the boot disk, VM configuration like IP tables, and the idempotency of salt. Getting a fresh VM instead would remove these concerns and provide a clean state for a new node.
Furthermore, a versioned node spec (#4855) includes the tuple of (kubelet, kube-proxy, docker, kernel/OS). In the general case, changing docker or the kernel/OS means we have to stop the running pods. Once know we have to stop the pods, the simplest upgrade mechanism is to totally down the node and provision a new one.
Provisioning a new node is also a great backup to have for node repairs. To be clear, though, this issue is entirely separate from node repairs; once we have the capability to grow the cluster by adding new nodes, this mechanism, and other repair mechanisms, will build on top of that capability.
This was blocked by:
References: