Skip to content

Commit 3dd6372

Browse files
committed
Update Alpha requirements for 1.34. Make CPU PSI a Beta requirement.
1 parent c75b7f4 commit 3dd6372

File tree

3 files changed

+27
-8
lines changed

3 files changed

+27
-8
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# The KEP must have an approver from the
2+
# "prod-readiness-approvers" group
3+
# of http://git.k8s.io/enhancements/OWNERS_ALIASES
4+
kep-number: 5394
5+
alpha:
6+
approver: "@johnbelamaric"

keps/sig-node/5394-psi-node-conditions/README.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,22 +115,22 @@ default threshold to be used for reporting the nodes under heavy resource pressu
115115

116116
**Note:** These actions are tentative, and will depend on different the outcome from testing and discussions with sig-node members, users, and other folks.
117117

118+
**Note:** In the initial Alpha implementation, we are not introducing node pressure condition for CPU. This is because unlike memory and IO, CPU is a compressible resource. See https://github.com/kubernetes/enhancements/issues/5062 for more details.
119+
118120
1. Introduce a new kubelet config parameter, pressure threshold, to let users specify the pressure percentage beyond which the kubelet would report the node condition to disallow workloads to be scheduled on it.
119121

120-
2. Add new node conditions corresponding to high PSI (beyond threshold levels) on CPU, Memory and IO.
122+
2. Add new node conditions corresponding to high PSI (beyond threshold levels) on Memory and IO.
121123

122124
```go
123125
// These are valid conditions of the node. Currently, we don't have enough information to decide
124126
// node condition.
125127
const (
126128
127129
// Conditions based on pressure at system level cgroup.
128-
NodeSystemCPUContentionPressure NodeConditionType = "SystemCPUContentionPressure"
129130
NodeSystemMemoryContentionPressure NodeConditionType = "SystemMemoryContentionPressure"
130131
NodeSystemDiskContentionPressure NodeConditionType = "SystemDiskContentionPressure"
131132

132133
// Conditions based on pressure at kubepods level cgroup.
133-
NodeKubepodsCPUContentionPressure NodeConditionType = "KubepodsCPUContentionPressure"
134134
NodeKubepodsMemoryContentionPressure NodeConditionType = "KubepodsMemoryContentionPressure"
135135
NodeKubepodsDiskContentionPressure NodeConditionType = "KubepodsDiskContentionPressure"
136136
)
@@ -232,12 +232,22 @@ https://storage.googleapis.com/k8s-triage/index.html
232232
We expect no non-infra related flakes in the last month as a GA graduation criteria.
233233
-->
234234

235-
- <test>: <link to test coverage>
235+
Test plan:
236+
- Enable the feature gate.
237+
- For each of memory and IO
238+
- Schedule workloads to a node that overwhelms the resource.
239+
- Ensure the node is marked with corresponding PSI pressure node condition and taint.
240+
- Create more workloads and observe that the workloads cannot be scheduled onto this node.
241+
- Delete existing workloads to free up the resource.
242+
- Ensure the node condition and taint are removed.
243+
- Create more workloads and observe the the workloads can be scheduled.
244+
- Clean up.
236245

237246
### Graduation Criteria
238247

239248
#### Alpha
240249

250+
- Conduct experiments to decide the scope of the node condition (system v.s. kubepods v.s. node) as well as the default threshold
241251
- Enables kubelet to
242252
report node conditions based off PSI values.
243253
- Initial e2e tests completed and enabled if CRI implementation supports
@@ -246,6 +256,7 @@ it.
246256

247257
#### Beta
248258

259+
- Decide whether CPU PSI will be used for node conditions.
249260
- Feature gate is enabled by default.
250261
- Extend e2e test coverage.
251262
- Allowing time for feedback.
@@ -566,6 +577,7 @@ NA
566577

567578
- 2023/09/13: Initial proposal
568579
- 2025/06/11: Only keep Phase 2 contents in this new KEP. Phase 1 contents are kept in the original KEP.
580+
- 2025/06/11: Update Alpha requirements. Make CPU PSI a Beta requirement.
569581

570582
## Drawbacks
571583

keps/sig-node/5394-psi-node-conditions/kep.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
title: PSI based Node Conditions
2-
kep-number: 4205
2+
kep-number: 5394
33
authors:
44
- "@ndixita"
55
- "@dragoncell"
6+
- "@roycaihw"
67
owning-sig: sig-node
78
participating-sigs:
89
- sig-node
910
status: implementable
10-
creation-date: 2023-05-25
11+
creation-date: 2025-06-11
1112
reviewers:
1213
- "@mrunalp"
1314
- "@haircommander"
@@ -26,11 +27,11 @@ stage: alpha
2627
# The most recent milestone for which work toward delivery of this KEP has been
2728
# done. This can be the current (upcoming) milestone, if it is being actively
2829
# worked on.
29-
latest-milestone: "v1.33"
30+
latest-milestone: "v1.34"
3031

3132
# The milestone at which this feature was, or is targeted to be, at each stage.
3233
milestone:
33-
alpha: "v1.33"
34+
alpha: "v1.34"
3435

3536
# The following PRR answers are required at alpha release
3637
# List the feature gate name and the components for which it must be enabled

0 commit comments

Comments
 (0)