Skip to content

Commit d1a0c76

Browse files
authored
Merge pull request #48471 from ndixita/pod-resources-alpha
Document pod level resources
2 parents 383dd00 + 0374213 commit d1a0c76

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
@@ -109,6 +109,26 @@ a Pod.
109109
For a particular resource, a *Pod resource request/limit* is the sum of the
110110
resource requests/limits of that type for each container in the Pod.
111111

112+
## Pod-level resource specification
113+
114+
{{< feature-state feature_gate_name="PodLevelResources" >}}
115+
116+
Starting in Kubernetes 1.32, you can also specify resource requests and limits at
117+
the Pod level. the Pod level. At Pod level, Kubernetes {{< skew currentVersion >}}
118+
only supports resource requests or limits for specific resource types: `cpu` and /
119+
or `memory`. This feature is currently in alpha and with the feature enabled,
120+
Kubernetes allows you to declare an overall resource budget for the Pod, which is
121+
especially helpful when dealing with a large number of containers where it can be
122+
difficult to accurately gauge individual resource needs. Additionally, it enables
123+
containers within a Pod to share idle resources with each other, improving resource
124+
utilization.
125+
126+
For a Pod, you can specify resource limits and requests for CPU and memory by including the following:
127+
* `spec.resources.limits.cpu`
128+
* `spec.resources.limits.memory`
129+
* `spec.resources.requests.cpu`
130+
* `spec.resources.requests.memory`
131+
112132
## Resource units in Kubernetes
113133

114134
### CPU resource units {#meaning-of-cpu}
@@ -192,6 +212,19 @@ spec:
192212
cpu: "500m"
193213
```
194214
215+
## Pod resources example {#example-2}
216+
217+
{{< feature-state feature_gate_name="PodLevelResources" >}}
218+
219+
The following Pod has an explicit request of 1 CPU and 100 MiB of memory, and an
220+
explicit limit of 1 CPU and 200 MiB of memory. The `pod-resources-demo-ctr-1`
221+
container has explicit requests and limits set. However, the
222+
`pod-resources-demo-ctr-2` container will simply share the resources available
223+
within the Pod resource boundaries, as it does not have explicit requests and limits
224+
set.
225+
226+
{{% code_sample file="pods/resource/pod-level-resources.yaml" %}}
227+
195228
## How Pods with resource requests are scheduled
196229

197230
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

0 commit comments

Comments
 (0)