Skip to content
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

EKS Node Groups update proposal #100

Closed
Raffo opened this issue Jul 6, 2018 · 9 comments
Closed

EKS Node Groups update proposal #100

Raffo opened this issue Jul 6, 2018 · 9 comments
Labels
area/upgrades kind/feature New feature or request

Comments

@Raffo
Copy link

Raffo commented Jul 6, 2018

eksctl should support updates of the node groups. Even if eks does not support updating clusters at the time of writing (kubernetes 1.10 is the only version supported), we should still have in place a way to update the nodes of the cluster as we might want to rollout fixes to the nodes (i.e. a new AMI with critical bugfixes at the OS level) even without updating Kubernetes itself.

To support that we can have different update strategy:

  • create a new LaunchConfiguration for the existing AutoscalingGroup of the Node Group
  • create a new AutoscalinGroup to attach to the cluster with the new configuration and let the users do the switch, i.e. by draining the old nodes gradually to have smooth upgrades.

We could think of having this feature implemented in a way that those alternative strategies can be gradually implemented.

Additionally, I propose having those functionalities implemented as CLI-only version at the beginning, such that we can execute individual steps manually as there are definitely multiple steps required and achieving fully automation of this would be mostly a matter of gluing those individual steps together.

Some inspirations for similar functionalities can be found in this kops PR, in progress or in Zalando's cluster update strategies. eksctl doesn't need to derive from any of those, but it can definitely learn some lessons :-)

Also, in my opinion, this feature is blocked by #46 as it would be a major new feature that would be better to build with a proper testing in place.

@errordeveloper errordeveloper added the kind/feature New feature or request label Jul 7, 2018
@errordeveloper errordeveloper added this to the 0.1.x – improvements milestone Jul 23, 2018
@errordeveloper
Copy link
Contributor

I think #132 should make this much easier to implement, and it does make things more testable too. Also we have made some progress on #46 in general.

@errordeveloper
Copy link
Contributor

Besides CLI, I think after we add Cluster API support (see #19 & #20), we should consider a nodegroup controller that could manage upgrades within the cluster it runs in.

@Raffo
Copy link
Author

Raffo commented Aug 8, 2018

I think the first discussion around the cluster-api implementation happens tonight, not sure if I can join, but it would be lovely to get some idea to see what can be implemented here.

@errordeveloper
Copy link
Contributor

Just wanted to make it clear for anyone looking at this issue – it should be possible to start on this already, nothing is blocking it (as far as I'm aware). One might wish to start by adding eksctl get nodegroup subcommand, which is an easy one.

@errordeveloper
Copy link
Contributor

Related: #443.

@errordeveloper
Copy link
Contributor

@Raffo I think we can close this now, nodegroup will handle draining once #593 lands, one would be able to eksctl create ng --cluster=<clusterName> && eksctl delete ng --cluster=<clusterName> --name=<oldNodeGroupname>. We have #443 as a follow-up for automating this.

@Raffo
Copy link
Author

Raffo commented Feb 28, 2019

Sounds good to me, maybe we close this after #443 is merged?

@errordeveloper
Copy link
Contributor

@Raffo sgtm :)

@martina-if
Copy link
Contributor

Given that eksctl now has support for managed nodegroups I think we can close this.

torredil pushed a commit to torredil/eksctl that referenced this issue May 20, 2022
Update README to be ready for alpha release
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/upgrades kind/feature New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants