Skip to content

Commit 0374213

Browse files
committed
KEP 2837: Pod Level Resources Alpha
1 parent 16ea406 commit 0374213

16 files changed

+408
-0
lines changed

content/en/docs/concepts/configuration/manage-resources-containers.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,26 @@ a Pod.
9494
For a particular resource, a *Pod resource request/limit* is the sum of the
9595
resource requests/limits of that type for each container in the Pod.
9696

97+
## Pod-level resource specification
98+
99+
{{< feature-state feature_gate_name="PodLevelResources" >}}
100+
101+
Starting in Kubernetes 1.32, you can also specify resource requests and limits at
102+
the Pod level. the Pod level. At Pod level, Kubernetes {{< skew currentVersion >}}
103+
only supports resource requests or limits for specific resource types: `cpu` and /
104+
or `memory`. This feature is currently in alpha and with the feature enabled,
105+
Kubernetes allows you to declare an overall resource budget for the Pod, which is
106+
especially helpful when dealing with a large number of containers where it can be
107+
difficult to accurately gauge individual resource needs. Additionally, it enables
108+
containers within a Pod to share idle resources with each other, improving resource
109+
utilization.
110+
111+
For a Pod, you can specify resource limits and requests for CPU and memory by including the following:
112+
* `spec.resources.limits.cpu`
113+
* `spec.resources.limits.memory`
114+
* `spec.resources.requests.cpu`
115+
* `spec.resources.requests.memory`
116+
97117
## Resource units in Kubernetes
98118

99119
### CPU resource units {#meaning-of-cpu}
@@ -177,6 +197,19 @@ spec:
177197
cpu: "500m"
178198
```
179199
200+
## Pod resources example {#example-2}
201+
202+
{{< feature-state feature_gate_name="PodLevelResources" >}}
203+
204+
The following Pod has an explicit request of 1 CPU and 100 MiB of memory, and an
205+
explicit limit of 1 CPU and 200 MiB of memory. The `pod-resources-demo-ctr-1`
206+
container has explicit requests and limits set. However, the
207+
`pod-resources-demo-ctr-2` container will simply share the resources available
208+
within the Pod resource boundaries, as it does not have explicit requests and limits
209+
set.
210+
211+
{{% code_sample file="pods/resource/pod-level-resources.yaml" %}}
212+
180213
## How Pods with resource requests are scheduled
181214

182215
When you create a Pod, the Kubernetes scheduler selects a node for the Pod to
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
title: PodLevelResources
3+
content_type: feature_gate
4+
_build:
5+
list: never
6+
render: false
7+
8+
stages:
9+
- stage: alpha
10+
defaultValue: false
11+
fromVersion: "1.32"
12+
---
13+
Enable _Pod level resources_: the ability to specify resource requests and limits
14+
at the Pod level, rather than only for specific containers.

content/en/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,8 @@ kubectl delete namespace constraints-cpu-example
277277

278278
* [Assign CPU Resources to Containers and Pods](/docs/tasks/configure-pod-container/assign-cpu-resource/)
279279

280+
* [Assign Pod-level CPU and memory resources](/docs/tasks/configure-pod-container/assign-pod-level-resources/)
281+
280282
* [Configure Quality of Service for Pods](/docs/tasks/configure-pod-container/quality-service-pod/)
281283

282284

content/en/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,8 @@ kubectl delete namespace default-cpu-example
211211

212212
* [Assign CPU Resources to Containers and Pods](/docs/tasks/configure-pod-container/assign-cpu-resource/)
213213

214+
* [Assign Pod-level CPU and memory resources](/docs/tasks/configure-pod-container/assign-pod-level-resources/)
215+
214216
* [Configure Quality of Service for Pods](/docs/tasks/configure-pod-container/quality-service-pod/)
215217

216218

content/en/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,8 @@ kubectl delete namespace constraints-mem-example
275275

276276
* [Assign CPU Resources to Containers and Pods](/docs/tasks/configure-pod-container/assign-cpu-resource/)
277277

278+
* [Assign Pod-level CPU and memory resources](/docs/tasks/configure-pod-container/assign-pod-level-resources/)
279+
278280
* [Configure Quality of Service for Pods](/docs/tasks/configure-pod-container/quality-service-pod/)
279281

280282

content/en/docs/tasks/administer-cluster/manage-resources/memory-default-namespace.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,8 @@ kubectl delete namespace default-mem-example
228228

229229
* [Assign CPU Resources to Containers and Pods](/docs/tasks/configure-pod-container/assign-cpu-resource/)
230230

231+
* [Assign Pod-level CPU and memory resources](/docs/tasks/configure-pod-container/assign-pod-level-resources/)
232+
231233
* [Configure Quality of Service for Pods](/docs/tasks/configure-pod-container/quality-service-pod/)
232234

233235

content/en/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,8 @@ kubectl delete namespace quota-mem-cpu-example
185185

186186
* [Assign CPU Resources to Containers and Pods](/docs/tasks/configure-pod-container/assign-cpu-resource/)
187187

188+
* [Assign Pod-level CPU and memory resources](/docs/tasks/configure-pod-container/assign-pod-level-resources/)
189+
188190
* [Configure Quality of Service for Pods](/docs/tasks/configure-pod-container/quality-service-pod/)
189191

190192

content/en/docs/tasks/administer-cluster/manage-resources/quota-pod-namespace.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,8 @@ kubectl delete namespace quota-pod-example
142142

143143
* [Assign CPU Resources to Containers and Pods](/docs/tasks/configure-pod-container/assign-cpu-resource/)
144144

145+
* [Assign Pod-level CPU and memory resources](/docs/tasks/configure-pod-container/assign-pod-level-resources/)
146+
145147
* [Configure Quality of Service for Pods](/docs/tasks/configure-pod-container/quality-service-pod/)
146148

147149

content/en/docs/tasks/administer-cluster/quota-api-object.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ kubectl delete namespace quota-object-example
167167

168168
* [Assign CPU Resources to Containers and Pods](/docs/tasks/configure-pod-container/assign-cpu-resource/)
169169

170+
* [Assign Pod-level CPU and memory resources](/docs/tasks/configure-pod-container/assign-pod-level-resources/)
171+
170172
* [Configure Quality of Service for Pods](/docs/tasks/configure-pod-container/quality-service-pod/)
171173

172174

content/en/docs/tasks/configure-pod-container/assign-cpu-resource.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,8 @@ kubectl delete namespace cpu-example
257257

258258
* [Assign Memory Resources to Containers and Pods](/docs/tasks/configure-pod-container/assign-memory-resource/)
259259

260+
* [Assign Pod-level CPU and memory resources](/docs/tasks/configure-pod-container/assign-pod-level-resources/)
261+
260262
* [Configure Quality of Service for Pods](/docs/tasks/configure-pod-container/quality-service-pod/)
261263

262264
### For cluster administrators

content/en/docs/tasks/configure-pod-container/assign-memory-resource.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,8 @@ kubectl delete namespace mem-example
340340

341341
* [Assign CPU Resources to Containers and Pods](/docs/tasks/configure-pod-container/assign-cpu-resource/)
342342

343+
* [Assign Pod-level CPU and memory resources](/docs/tasks/configure-pod-container/assign-pod-level-resources/)
344+
343345
* [Configure Quality of Service for Pods](/docs/tasks/configure-pod-container/quality-service-pod/)
344346

345347
### For cluster administrators

0 commit comments

Comments
 (0)