-
Notifications
You must be signed in to change notification settings - Fork 219
Remove critical-pod annotations from scheduler & controller-manager #519
Comments
When a critical pod cannot be scheduled, rescheduler tries to find a node for it and removes enough pods from the node to allow scheduling of the critical pod, but once it does so, it adds the pod to a list of processed pods. Once the pod is added to the list, rescheduler will not remove more workloads from other nodes to make it schedule. |
Actually, when I looked at the code again, I noticed that if the |
Remove the critical pod annotation and toleration from the controller-manager and scheduler, since this can result in dangerous behavior as discussed in kubernetes-retired/bootkube#519.
Remove the critical pod annotation and toleration from the controller-manager and scheduler, since this can result in dangerous behavior as discussed in kubernetes-retired/bootkube#519.
Remove the critical pod annotation and toleration from the controller-manager and scheduler, since this can result in dangerous behavior as discussed in kubernetes-retired/bootkube#519.
This is confusing. #728 (comment) states the annotations are only for the rescheduler. #474 (comment) states the annotations aren't safe if we do run the rescheduler. Since we don't run the rescheduler, it seems like these annotations are useless rather than dangerous currently? Upstream salt templates still includes the critical-pod annotation on kube-system components, Tectonic does not. @diegs @aaronlevy Can we come to a decision to merge or close #728 (@squat) and plan whether we ever want the rescheduler or no if its being retired. #474 |
Fixed in #777 |
If we mark the scheduler as critical, for example, then it happens to get in a state where a pod is unscheduled because the scheduler is down (e.g. #112) -- will the rescheduler start evicting other workloads?
This would be pretty dangerous as it would likely just keep evicting workloads even though it will never be scheduled (no scheduler to schedule it).
Ideally the rescheduler would only evict based on "known" scheduling failures (e.g. no more allocatable CPU), not just on "can't schedule" -- but I'm unsure of the exact behavior.
We don't currently deploy the rescheduler, but we should evaluate this behavior before doing so (possibly remove the critical pod annotation from controller-manager / scheduler).
xref: #474
The text was updated successfully, but these errors were encountered: