Skip to content

Commit 61e17e0

Browse files
committed
Rephrasing PRR rollback section, adding a sentence for in place pod beta support, and fixing typos
1 parent f5f65f4 commit 61e17e0

File tree

1 file changed

+27
-20
lines changed
  • keps/sig-node/2837-pod-level-resource-spec

1 file changed

+27
-20
lines changed

keps/sig-node/2837-pod-level-resource-spec/README.md

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@
5050
- [Unit tests](#unit-tests)
5151
- [e2e tests](#e2e-tests)
5252
- [Graduation Criteria](#graduation-criteria)
53-
- [Phase 1: Alpha (target 1.31)](#phase-1-alpha-target-131)
54-
- [Phase 2: Beta (target 1.32)](#phase-2--beta-target-132)
53+
- [Phase 1: Alpha (target 1.32)](#phase-1-alpha-target-132)
54+
- [Phase 2: Beta (target 1.33)](#phase-2--beta-target-133)
5555
- [GA (stable)](#ga-stable)
5656
- [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
5757
- [Upgrade](#upgrade)
@@ -296,8 +296,8 @@ can use resources available elsewhere on the node.
296296
pod-level in the Pod specification.
297297
298298
3. In alpha stage of Pod-level Resources feature, when using pod-level resources,
299-
in-place pod resizing is unsupported with in-place pod resizing. **Users should
300-
not use in-place pod resize with pod-level resources enabled.**
299+
in-place pod resizing is unsupported with in-place pod resizing. **Users won't
300+
be able to use in-place pod resize with pod-level resources enabled.**
301301
302302
### Risks and Mitigations
303303
@@ -403,6 +403,9 @@ type PodSpec struct {
403403
To ensure clarity and prevent ambiguity in resource allocation, the following
404404
validation rules are proposed for pod-level resource specifications:
405405
406+
* In alpha, invalidate requests to update resources at container-level if
407+
`resources` is set in PodSpec.
408+
406409
* Pod-level Resources Priority: If pod-level requests and limits are explicitly
407410
set, they take precedence over container-level settings. Defaulting logic is only
408411
applied when pod-level requests and/or limits are not explicitly specified.
@@ -1414,18 +1417,18 @@ This feature will touch multiple components. For alpha, unit tests coverage for
14141417
14151418
Following scenarios need to be covered:
14161419
1417-
1418-
14191420
* Cgroup settings when pod-level resources are set.
14201421
* Validate scheduling and admission.
14211422
* Validate the containers with no limits set are throttled on CPU when CPU usage reaches Pod level CPU limits.
1422-
* Validate the containers with no limits set are OOMKilled when memory usage reaches Pod level memory limits.
1423+
* Validate the containers with no limits set are OOMKilled when memory usage
1424+
reaches Pod level memory limits.
1425+
* Test the correct values in TotalResourcesRequested.
14231426
14241427
14251428
### Graduation Criteria
14261429
14271430
1428-
#### Phase 1: Alpha (target 1.31)
1431+
#### Phase 1: Alpha (target 1.32)
14291432
14301433
14311434
* Feature is disabled by default. It is an opt-in feature which can be enabled by enabling the `PodLevelResources`
@@ -1437,7 +1440,7 @@ feature gate and by setting the new `resources` fields in PodSpec at Pod level.
14371440
* Documentation mentioning high level design.
14381441
14391442
1440-
#### Phase 2: Beta (target 1.32)
1443+
#### Phase 2: Beta (target 1.33)
14411444
14421445
14431446
* User Feedback.
@@ -1448,7 +1451,7 @@ feature gate and by setting the new `resources` fields in PodSpec at Pod level.
14481451
* Documentation update and blog post to announce feature in beta phase.
14491452
* [Tentative] Benchmark tests for resource usage with and without pod level resources for bursty workloads.
14501453
* Use kube_pod_container_resource_usage metric to check resource utilization.
1451-
1454+
* [TBD] In-place pod resize support either as a part of this KEP or a separate KEP/feature.
14521455
14531456
#### GA (stable)
14541457
@@ -1577,16 +1580,20 @@ To resolve this, users can delete the affected pods and recreate them.
15771580
###### What happens if we reenable the feature if it was previously rolled back?
15781581
15791582
If the feature is re-enabled after being previously disabled, any new pods will
1580-
again have access to the pod-level resources feature. Existing pods created while
1581-
the feature was disabled will continue to operate without utilizing pod-level
1582-
resources.
1583-
1584-
However, existing pods that were created with pod-level resources before the
1585-
feature was disabled will experience mismatched calculations for resource usage
1586-
when the feature is disabled, and these calculations will only align correctly
1587-
once the feature is re-enabled. Additionally, any pods that were admitted before
1588-
the feature was disabled but are recreated or restarted will also have mismatched
1589-
calculations after the feature is re-enabled.
1583+
again have access to the pod-level resources feature.
1584+
1585+
Pods that were created but not yet started will be treated based on its resource
1586+
spec (pod-level when feature gate is enabled, and container-level when the gate
1587+
is disabled).
1588+
1589+
Pods that are already running with resources provisioned will continue running
1590+
with resources provisioned at the time of execution (whether it was pod-level or
1591+
container-level resources).
1592+
1593+
However, some components may calculate the resource usage of the pods based on
1594+
the resource spec (pod-level when feature gate is enabled, and container-level
1595+
when feature gata is disabled), and that may not necessarily match the actual
1596+
resources provisioned for the running pod.
15901597
15911598
To ensure consistent and intuitive resource calculations, it is advisable to
15921599
delete all pods when toggling the feature between enabling and disabling. This

0 commit comments

Comments
 (0)