Comments (3)
@stevehipwell Thanks for sharing I wasn't aware of that. However, although its useful it doesn't have any integration with Kubernetes. You could do something like what Zalando does here https://github.com/zalando-incubator/kubernetes-on-aws/blob/449f8f3bf5c60e0d319be538460ff91266337abc/cluster/userdata-worker.yaml#L92 so before the node shuts down it drains the pods.
However as the tool says: "Each instance is terminated first and then replaced", which doesn't allow you to prescale up with multiple new instances first which mode 2 & 3 of eks-rolling-update allows. Also , with Instance Refresh, when the warmup period is over, there is no guarantee that the node is added to the Kube cluster which eks-rolling-update checks before proceeding in mode 1.
from eks-rolling-update.
It looks interesting, however unless I am missing something, I can't see an obvious way to use this feature to co-ordinate the really important part of the process that eks-rolling-update solves which is particular to Kubernetes clusters - safely cordoning and draining nodes before they are removed from the cluster/terminated.
So I suppose you would still need to layer on top of this some sort of pre-termination lifecycle hook. All of the approaches I have seen to do that seem kind-of messy to me. I do wonder what AWS constructs EKS uses internally with their managed node groups though...
from eks-rolling-update.
Thanks for the reply @crhuber. I also asked a similar question on the aws-node-termination-handler repo but no luck there either.
I've toyed with the idea of creating a K8s operator to manage the rolling update from within the cluster. When the configuration changes it would create a new node from an up to date launch template; once the new node is available it would run the rolling update command on it as a job.
from eks-rolling-update.
Related Issues (20)
- Question: IAM and K8s Permissions
- RequestExpired when calling the DescribeInstances operation
- Error 'NoneType' object is not iterable with Kubernetes Version 1.19
- add AZRebalance also in suspend action
- Dry run doesn't care about RUN_MODE HOT 3
- Changelog / Release notes HOT 1
- K8S_CONTEXT environment variable ignored when draining nodes
- Using API to drain kubernetes node HOT 1
- Last build / deployment of master failed
- Ambiguous check of running instances HOT 1
- [Feature Request] Detach from ASG or Load Balancer / Target Group
- eks-rolling-update is going into crashloopfailure HOT 1
- New release on pypi ?
- Publish docker image on ghcr.io
- Repo maintainers ? HOT 8
- Question - Throttling request took 2.429459004s HOT 3
- Waiting for k8s nodes to reach count HOT 7
- Allow a configurable buffer of extra instances HOT 1
- Could not configure Kubernetes Python Client HOT 5
- NLB still sending requests to node while shutting down
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eks-rolling-update.