Skip to content
KEP Brain

KEP-3902keps/sig-scheduling/3902-decoupled-taint-manager

Decouple TaintManager from NodeLifeCycleController

implementedstablesig-schedulinglatest v1.34
In Kubernetes, NodeLifecycleController applies predefined NoExecute taints (e.g., Unreachable, NotReady) when the nodes are determined to be unhealthy. After the nodes get tainted, TaintManager does its due diligence to start deleting running pods on those nodes based on NoExecute taints, which can be added by anyone. In this KEP, we propose to decouple Tai… Full summary

In Kubernetes, NodeLifecycleController applies predefined NoExecute taints (e.g., Unreachable, NotReady) when the nodes are determined to be unhealthy. After the nodes get tainted, TaintManager does its due diligence to start deleting running pods on those nodes based on NoExecute taints, which can be added by anyone. In this KEP, we propose to decouple TaintManager that performs taint-based pod eviction from NodeLifecycleController and make them two separate controllers: NodeLifecycleController to add taints to unhealthy nodes and TaintEvictionController to perform pod deletion on nodes tainted with NoExecute effect. This separation not only improves code organization but also makes it easier to improve TaintEvictionController or build custom implementations of the taint based eviction.

Facts

PRR approvers
@wojtek-tbeta@wojtek-tstable
Tracking issue
#3902(opens GitHub in a new tab) closedcompletedclosed 2025-09-19 08:20 UTCmilestone v1.34sig/appssig/nodesig/schedulingstage/stable
Milestones
beta v1.29stable v1.34
Participating SIGs
sig-nodesig-apps
Feature gates
SeparateTaintEvictionController
Created / last updated
2023-03-07 / none
Loading decisions and status history

Keyboard shortcuts

Everywhere

?
Show or hide this list
/
Focus the question box on Ask, otherwise the page search
Ctrl Kor⌘ K
Focus the KEP search in the top bar
t
Switch the theme (system, light, dark)
Esc
Close a dialog, a search list or a menu

Go to a page

Press g, then the letter

g h
Home
g a
Ask
g e
Explore
g u
Audit
g m
Memory
g b
About

Ask

Enter
Send the question
Shift Enter
New line in the question
Esc
Cancel the running question

Search lists

KEP search and Explore search

↓or↑
Move through the results
HomeorEnd
First or last result (Explore)
Enter
Open the highlighted result, or KEP-n when the query is a number

KEP page

o
Open the KEP on GitHub
y
Open kep.yaml on GitHub
a
Ask about this KEP
←or→
Previous or next tab, when a tab is focused

Findings table

With a finding row focused (Tab into the table or click a row)

jork
Next or previous finding
EnterorSpace
Expand or collapse the finding
o
Open the finding's KEP page
d
Draft the fix as an issue text (nothing is posted)
]or[
Next or previous page of findings

Shortcuts pause while you type in a field. Press ? or Esc to close.