-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Supporting an Inplace Update Rollout Strategy for upgrading Workload Clusters #9489
Comments
/triage accepted |
/assign |
/priority backlog |
As an operator of CAPI clusters at scale in regulated physical locations with bandwidth and compute hardware constraints, I would very much welcome this capability. |
Thanks @fabriziopandini for pointing me to this issue (I was going to raise the same issue). One of the problems of creating & removing nodes one by one is that you have to sync the etcd's data from the leader each time when you upgrade or update the cluster. It's definitely unnecessary, It would be great if we can avoid it by in-place rolling upgrading & updating. |
@ahrtr please elaborate why it is a problem for you that etcd data needs to be synced again. I understand that it is network traffic which could be avoided, but please explain the pain of the current "delete and recreate". Etcd has the learner mode now, so that the etcd node will only join after it has synced. |
|
Do you have numbers? How much data needs to sync? (in my current context I have a lot of smaller clusters, so it does not matter).
Wait a second. I thought Cluster-API does a scale-out during an upgrade. If you have 3 CP nodes, then a 4th node gets added, then an old node gets deleted. But maybe I am missing something. |
User Story
As a Platform Operator managing the Kubernetes clusters in resource constraint environments(Non-HA) OR/AND Specialized customized environments, I want to upgrade Kubernetes clusters without rolling out new nodes.
Detailed Description
For use cases such as
Single-Node Clusters
with no spare capacity or evenMulti-Node Clusters
with VM/OS customizations for high-performance/low-latency workloads or dependency on local persistent storage, Upgrading a Workload Cluster viaRollingUpdate
rollout strategy could either be not feasible or a costly operation requiring to re-apply these customizations on newer nodes and hence more downtime.CAPI uses/promotes the immutable Infrastructure principles for a range of advantages. With the emergence of Image-based OS upgrade techniques such as
A/B partition OS upgrades
orOSTree Filesystem OS upgrades
which provide immutable OS characteristics, We could rethink CAPI providing another rollout strategy to update theK8s
/OS
for the workload clusters.At a high level, below could be some of the requirements
Anything else you would like to add?
There are already some CAPI slack discussions/GH issues discussing in-place upgrade needs and probably folks already have some ideas or more use cases around this. It would be great to hear/discuss those in the comments and probably it would be beneficial to create a Working Group around this feature.
Some GH issues around In-place upgrades/mutability in CAPI and tagging folks part of these discussions
cc: @furkatgofurov7 @pacoxu @fabriziopandini @sbueringer @shivi28
Please feel free to add more folks interested in this feature.
/kind feature
/area upgrades
The text was updated successfully, but these errors were encountered: