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
Node label/taint/annotation placing logic needs to be improved #740
Comments
CCM initialization follows a mechanism where kubelet places the following taints
on the node , and then CCM places the annotations and then removes this taint. We could follow a similar approach for MCM Upside of approach
Downside of approach
|
The second approach is using mutating webhook to apply ALT Upside of approach
Downside of approach
|
Post grooming discussionWe currently can't distinguish b/w important and un-important labels/annotations. Important labels/annotations are those which are required to be placed on the node immediately as they control scheduling of pods, while un-important are lets say for classification. So the taint logic for MCM to ensure all ALT are placed before pods are scheduled can't be used, as we can have problems if MCM is unavailable to remove the taint. We identified another flaw in code which leads to late addition of ALT, and solving that would considerably improve the speed of ALT application. Once we swap these two calls it should be sufficient. Regarding taints , all taints are important, so the plan should be:
But we need to read the documentation thoroughly before we implement the taint part. |
How to categorize this issue?
/area performance
/kind discussion
/kind enhancement
/priority 3
What would you like to be added:
MCM needs to place node annotations,labels,taints(ALT) configured more efficiently. Refer Canary issue # 2918
Why is this needed:
There could be reasons for delay in applying ALT to nodes by MCM. Some of the reasons could be:
This impacts correct scheduling of workloads onto nodes controlled either via node labels or taints.
The text was updated successfully, but these errors were encountered: