Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged main dev 1.32 #48693

Open
wants to merge 118 commits into
base: dev-1.32
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
ad8dd85
update: ja.toml
Okabe-Junya Aug 4, 2024
eb61a44
Add tasks/configure-pod-container/assign-pods-nodes-using-node-affini…
luisfroliveira Oct 22, 2024
7505848
ajuste subtitulo
luisfroliveira Oct 22, 2024
e334f83
add manifestos de exemplo
luisfroliveira Oct 22, 2024
e4988d4
📄 Update content content/es/docs/tasks/run-application/access-api-fro…
h3ct0rjs Oct 14, 2024
953dd04
Added content content/es/docs/tasks/run-application/access-api-from-p…
h3ct0rjs Oct 26, 2024
ecb44b6
Kubernetes v1.32 sneak peek blog
mbianchidev Oct 29, 2024
bb84059
Updated link to relative as suggested
mbianchidev Oct 29, 2024
381b714
Updated link to relative as suggested
mbianchidev Oct 29, 2024
8b685a3
Lang nit British -> American
mbianchidev Oct 29, 2024
8419068
Updated phrasing to avoid "removal of DRA" confusion
mbianchidev Oct 29, 2024
a6212ca
Update 2024-11-04-kubernetes-1.32-sneak-peek.md
mbianchidev Oct 29, 2024
4fb4bda
Removal -> Withdrawal
mbianchidev Oct 29, 2024
b8ad49b
Avoid mentioning scheduling as requested during review
mbianchidev Oct 29, 2024
4958194
KEP 4369 title changed as suggested during review
mbianchidev Oct 30, 2024
fe0e391
Addressed first review comments from sig-docs-blog
mbianchidev Oct 30, 2024
dbc57ad
Fix typos and text in manage-resources-containers.md
fgogolli Oct 30, 2024
9c59132
Addressed some grammar and nits
mbianchidev Oct 30, 2024
b323200
Documentation -> Deprecation guide
mbianchidev Oct 30, 2024
cdff2b4
Add systems:master paragraph
mrgiles Oct 31, 2024
468dc22
Implemented a number of suggestions from code review
mbianchidev Oct 31, 2024
147f4cd
Clarified KEP 1860
mbianchidev Oct 31, 2024
fd41232
Even more DRA clarifications
mbianchidev Oct 31, 2024
0242acd
Added API removal for 1.32
mbianchidev Nov 1, 2024
2e7b2b3
RecursiveReadOnlyMounts: update the status about CRI-O
AkihiroSuda Nov 1, 2024
f2e6a63
Remove KEP links from headings
mbianchidev Nov 1, 2024
5c87028
[pt] update contributor covenant links
Arhell Nov 2, 2024
72e67a1
Deadline change
mbianchidev Nov 3, 2024
21fa315
Chaning deadline to Friday 8th as initially intended.
mbianchidev Nov 3, 2024
2e49c2a
Renamed file name since the deadline changed
mbianchidev Nov 3, 2024
ad03b45
[zh-cn]sync recursive-read-only-mounts.md
my-git9 Nov 4, 2024
9aa2ef4
[zh-cn] sync sidecar-containers.md
my-git9 Nov 3, 2024
7fc7174
[zh-cn]sync participate/_index.md
my-git9 Nov 4, 2024
8dfd25a
fix: improve clarity and formatting in liveness, readiness, and start…
taguhoiya Nov 4, 2024
9a31b74
Delete an unnecessary backslash
taguhoiya Nov 4, 2024
f2ef74a
Addressing more review comments from sig-docs-blog
mbianchidev Nov 4, 2024
80fe913
[de] update kubernetes link
Arhell Nov 4, 2024
2754c4d
Merge pull request #48636 from my-git9/recursive-read-only-mounts
k8s-ci-robot Nov 5, 2024
750fab5
Merge pull request #48637 from my-git9/pp-8968
k8s-ci-robot Nov 5, 2024
dc1279f
Merge pull request #48616 from AkihiroSuda/rro-crio
k8s-ci-robot Nov 5, 2024
6faa2f0
sync volumes pod-lifecycle
asa3311 Nov 5, 2024
44a349e
Tweak application-security-checklist.md for cleanup
windsonsea Nov 5, 2024
0c21ff9
Merge pull request #48642 from asa3311/sync-zh-159
k8s-ci-robot Nov 5, 2024
c7fdf0c
Merge pull request #48624 from my-git9/pp-6545
k8s-ci-robot Nov 5, 2024
d0f51c0
Merge pull request #48643 from windsonsea/seclist
k8s-ci-robot Nov 5, 2024
75acc4c
Merge pull request #48641 from Arhell/de-kube
k8s-ci-robot Nov 5, 2024
91a4cbd
Reinforced concept: enhancement status can change until release
mbianchidev Nov 5, 2024
cefda82
Merge pull request #48617 from Arhell/pt-con
k8s-ci-robot Nov 5, 2024
d100ca6
[id] update kubernetes link
Arhell Nov 5, 2024
29646ac
Update content/pt-br/docs/tasks/configure-pod-container/assign-pods-n…
luisfroliveira Nov 6, 2024
1ba14b4
Update content/pt-br/docs/tasks/configure-pod-container/assign-pods-n…
luisfroliveira Nov 6, 2024
25413fb
Update content/pt-br/docs/tasks/configure-pod-container/assign-pods-n…
luisfroliveira Nov 6, 2024
8ca5ed5
Update content/pt-br/docs/tasks/configure-pod-container/assign-pods-n…
luisfroliveira Nov 6, 2024
275448c
Update content/pt-br/docs/tasks/configure-pod-container/assign-pods-n…
luisfroliveira Nov 6, 2024
49dfed1
ajustes solicitados
luisfroliveira Nov 6, 2024
072f5c6
ajustes solicitados
luisfroliveira Nov 6, 2024
ff03b6f
[zh] Add 2024-10-28-k8s-upstream-training-japan-spotlight
windsonsea Nov 4, 2024
96d69d6
Clean up a tutorial: pod-sidecar-containers.md
windsonsea Nov 6, 2024
27c53cc
Fix a clause about request/limit in app-security-checklist
windsonsea Nov 6, 2024
a7c9e0b
Fix bullet indentations and typos in kubelet-standalone.md
windsonsea Nov 6, 2024
481af09
Accepted suggestion
mbianchidev Nov 6, 2024
2306d5a
Relative URL update
mbianchidev Nov 6, 2024
02198d8
Merge pull request #48653 from windsonsea/alonen
k8s-ci-robot Nov 6, 2024
0bc2a60
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
779a460
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
4c9d8e8
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
354df79
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
7cdb344
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
39119c9
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
09d10df
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
6c6d30d
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
dedce72
Merge branch 'kubernetes:main' into issue-task-access-api-45316
h3ct0rjs Nov 6, 2024
16dc53e
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
0f5fc9a
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
3eed9f9
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
ff7011e
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
b793911
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
8dfb34e
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
b0c21e7
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
1ed78bc
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
a9dccea
Update content/es/docs/tasks/run-application/access-api-from-pod.md
h3ct0rjs Nov 6, 2024
53e74c3
Apply suggestions from code review
h3ct0rjs Nov 6, 2024
d6e0289
Apply suggestions from code review
h3ct0rjs Nov 6, 2024
6f44e20
[ja] update kubernetes link
Arhell Nov 6, 2024
86b4643
Merge pull request #48656 from Arhell/ja-kube
k8s-ci-robot Nov 7, 2024
812fa12
[zh] Add a tutorial: kubelet-standalone
windsonsea Nov 6, 2024
cd73544
Merge pull request #48626 from windsonsea/japans
k8s-ci-robot Nov 7, 2024
f7dda54
Merge pull request #48649 from Arhell/id-kube
k8s-ci-robot Nov 7, 2024
966c0e3
Move November patch releases +1 week
saschagrunert Nov 7, 2024
9fd9dd6
Merge pull request #48658 from saschagrunert/nov-kubecon
k8s-ci-robot Nov 7, 2024
55c76b7
Including tracked changes only (removed most of the content)
mbianchidev Nov 7, 2024
46e4540
Addressed nit
mbianchidev Nov 7, 2024
61d8b11
Rewording around DRA for clarity
mbianchidev Nov 7, 2024
53ceaeb
Merge pull request #48585 from mbianchidev/patch-1
k8s-ci-robot Nov 7, 2024
b1aea65
Merge pull request #48639 from taguhoiya/update-doc-for-probes
k8s-ci-robot Nov 7, 2024
0bd4268
Merge pull request #48549 from h3ct0rjs/issue-task-access-api-45316
k8s-ci-robot Nov 7, 2024
ed8d579
[zh-cn]sync liveness-readiness-startup-probes configure-liveness-read…
my-git9 Nov 8, 2024
2657a84
Merge pull request #48663 from my-git9/pp-25837
k8s-ci-robot Nov 8, 2024
a47541b
Merge pull request #48652 from windsonsea/stalone
k8s-ci-robot Nov 8, 2024
4356c81
Taints in kubernetes.io and k8s.io namespace are also reserved
VannTen Nov 8, 2024
c9a8d6d
Merge pull request #48665 from VannTen/k8s_io_taints_are_reserved
k8s-ci-robot Nov 8, 2024
3fa049b
Merge pull request #48651 from windsonsea/sidec
k8s-ci-robot Nov 9, 2024
5e0952d
feat: add the simulator annotations
sanposhiho Nov 9, 2024
168c506
fix: revert the wrong change
sanposhiho Nov 9, 2024
f7f347c
Merge pull request #48596 from fgogolli/patch-2
k8s-ci-robot Nov 10, 2024
e8c9dda
[ja] Localize glossary entry for "LimitRange" (#47896)
leaf-soba Nov 10, 2024
753021a
Merge pull request #47353 from Okabe-Junya/update-ja-toml
k8s-ci-robot Nov 10, 2024
4af7215
[zh-cn]sync pod-sidecar-containers.md
my-git9 Nov 9, 2024
b02b593
[zh-cn]sync manage-resources-containers.md
my-git9 Nov 10, 2024
ec962ba
Merge pull request #48488 from luisfroliveira/ptbr-assign-pods-nodes-…
k8s-ci-robot Nov 10, 2024
a927502
Merge pull request #48674 from my-git9/pp-17464
k8s-ci-robot Nov 11, 2024
35e33f5
Merge pull request #48670 from my-git9/pp-18337
k8s-ci-robot Nov 11, 2024
8897732
[zh-cn]sync labels-annotations-taints/_index.md
my-git9 Nov 9, 2024
51cd49d
Merge pull request #48668 from my-git9/pp-877
k8s-ci-robot Nov 11, 2024
76c9b17
Merge pull request #48669 from sanposhiho/patch-8
k8s-ci-robot Nov 11, 2024
7db3b75
Merge pull request #48600 from mrgiles/48546_system_masters_authz_page
k8s-ci-robot Nov 11, 2024
2a234b2
Merge pull request #48650 from windsonsea/chlist
k8s-ci-robot Nov 11, 2024
d021207
Merge main into dev-1.32 to keep in sync
michellengnx Nov 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/de/docs/contribute/participate/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Entweder durch Auflistung einzelner GitHub-Benutzernamen oder GitHub-Gruppen.
Die Kombination aus OWNERS-Dateien und Front-Matter in Markdown-Dateien bestimmt, welche Empfehlungen PR-Eigentümer von automatisierten Systemen erhalten, und wen sie um eine technische und redaktionelle Überprüfung ihres PRs bitten sollen.
## So funktioniert das Zusammenführen

Wenn ein Pull Request mit der Branch (Ast) zusammengeführt wird, in dem der Inhalt bereitgestellt werden soll, wird dieser Inhalt auf http://kubernetes.io veröffentlicht. Um sicherzustellen, dass die Qualität der veröffentlichten Inhalte hoch ist, beschränken wir das Zusammenführen von Pull Requests auf
Wenn ein Pull Request mit der Branch (Ast) zusammengeführt wird, in dem der Inhalt bereitgestellt werden soll, wird dieser Inhalt auf https://kubernetes.io veröffentlicht. Um sicherzustellen, dass die Qualität der veröffentlichten Inhalte hoch ist, beschränken wir das Zusammenführen von Pull Requests auf
SIG Docs Freigabeberechtigte. So funktioniert es:

- Wenn eine Pull-Anfrage sowohl das `lgtm`- als auch das `approve`-Label hat, kein `hold`-Label hat,
Expand Down
92 changes: 92 additions & 0 deletions content/en/blog/_posts/2024-11-08-kubernetes-1.32-sneak-peek.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
layout: blog
title: 'Kubernetes v1.32 sneak peek'
date: 2024-11-08
slug: kubernetes-1-32-upcoming-changes
author: >
Matteo Bianchi,
Edith Puclla,
William Rizzo,
Ryota Sawada,
Rashan Smith
---

As we get closer to the release date for Kubernetes v1.32, the project develops and matures. Features may be deprecated, removed, or replaced with better ones for the project's overall health.

This blog outlines some of the planned changes for the Kubernetes v1.32 release, that the release team feels you should be aware of, for the continued maintenance of your Kubernetes environment and keeping up to date with the latest changes. Information listed below is based on the current status of the v1.32 release and may change before the actual release date.

### The Kubernetes API removal and deprecation process
The Kubernetes project has a well-documented [deprecation policy](/docs/reference/using-api/deprecation-policy/) for features. This policy states that stable APIs may only be deprecated when a newer, stable version of that API is available and that APIs have a minimum lifetime for each stability level. A deprecated API has been marked for removal in a future Kubernetes release will continue to function until removal (at least one year from the deprecation). Its usage will result in a warning being displayed. Removed APIs are no longer available in the current version, so you must migrate to use the replacement instead.

* Generally available (GA) or stable API versions may be marked as deprecated but must not be removed within a major version of Kubernetes.

* Beta or pre-release API versions must be supported for 3 releases after the deprecation.

* Alpha or experimental API versions may be removed in any release without prior deprecation notice; this process can become a withdrawal in cases where a different implementation for the same feature is already in place.

Whether an API is removed due to a feature graduating from beta to stable or because that API did not succeed, all removals comply with this deprecation policy. Whenever an API is removed, migration options are communicated in the [deprecation guide](/docs/reference/using-api/deprecation-guide/).

## Note on the withdrawal of the old DRA implementation

The enhancement [#3063](https://github.com/kubernetes/enhancements/issues/3063) introduced Dynamic Resource Allocation (DRA) in Kubernetes 1.26.

However, in Kubernetes v1.32, this approach to DRA will be significantly changed. Code related to the original implementation will be removed, leaving KEP [#4381](https://github.com/kubernetes/enhancements/issues/4381) as the "new" base functionality.

The decision to change the existing approach originated from its incompatibility with cluster autoscaling as resource availability was non-transparent, complicating decision-making for both Cluster Autoscaler and controllers.
The newly added Structured Parameter model substitutes the functionality.

This removal will allow Kubernetes to handle new hardware requirements and resource claims more predictably, bypassing the complexities of back and forth API calls to the kube-apiserver.

Please also see the enhancement issue [#3063](https://github.com/kubernetes/enhancements/issues/3063) to find out more.

## API removal

There is only a single API removal planned for [Kubernetes v1.32](/docs/reference/using-api/deprecation-guide/#v1-32):

* The `flowcontrol.apiserver.k8s.io/v1beta3` API version of FlowSchema and PriorityLevelConfiguration has been removed.
To prepare for this, you can edit your existing manifests and rewrite client software to use the `flowcontrol.apiserver.k8s.io/v1 API` version, available since v1.29.
All existing persisted objects are accessible via the new API. Notable changes in flowcontrol.apiserver.k8s.io/v1beta3 include that the PriorityLevelConfiguration `spec.limited.nominalConcurrencyShares` field only defaults to 30 when unspecified, and an explicit value of 0 is not changed to 30.

For more information, please refer to the [API deprecation guide](/docs/reference/using-api/deprecation-guide/#v1-32).

## Sneak peek of Kubernetes v1.32

The following list of enhancements is likely to be included in the v1.32 release. This is not a commitment and the release content is subject to change.

### Even more DRA enhancements!

In this release, like the previous one, the Kubernetes project continues proposing a number of enhancements to the Dynamic Resource Allocation (DRA), a key component of the Kubernetes resource management system. These enhancements aim to improve the flexibility and efficiency of resource allocation for workloads that require specialized hardware, such as GPUs, FPGAs and network adapters. This release introduces improvements, including the addition of resource health status in the Pod status, as outlined in KEP [#4680](https://github.com/kubernetes/enhancements/issues/4680).

#### Add resource health status to the Pod status

It isn't easy to know when a Pod uses a device that has failed or is temporarily unhealthy.
KEP [#4680](https://github.com/kubernetes/enhancements/issues/4680) proposes exposing device health via Pod `status`, making troubleshooting of Pod crashes easier.

### Windows strikes back!

KEP [#4802](https://github.com/kubernetes/enhancements/issues/4802) adds support for graceful shutdowns of Windows nodes in Kubernetes clusters.
Before this release, Kubernetes provided graceful node shutdown functionality for Linux nodes but lacked equivalent support for Windows. This enhancement enables the kubelet on Windows nodes to handle system shutdown events properly. Doing so, it ensures that Pods running on Windows nodes are gracefully terminated, allowing workloads to be rescheduled without disruption. This improvement enhances the reliability and stability of clusters that include Windows nodes, especially during a planned maintenance or any system updates.

### Allow special characters in environment variables

With the graduation of this [enhancement](https://github.com/kubernetes/enhancements/issues/4369) to beta, Kubernetes now allows almost all printable ASCII characters (excluding "=") to be used as environment variable names. This change addresses the limitations previously imposed on variable naming, facilitating a broader adoption of Kubernetes by accommodating various application needs. The relaxed validation will be enabled by default via the `RelaxedEnvironmentVariableValidation` feature gate, ensuring that users can easily utilize environment variables without strict constraints, enhancing flexibility for developers working with applications like .NET Core that require special characters in their configurations.

### Make Kubernetes aware of the LoadBalancer behavior

KEP [#1860](https://github.com/kubernetes/enhancements/issues/1860) graduates to GA, introducing the `ipMode` field for a Service of `type: LoadBalancer`, which can be set to either `"VIP"` or `"Proxy"`. This enhancement is aimed at improving how cloud providers load balancers interact with kube-proxy and it is a change transparent to the end user. The existing behavior of kube-proxy is preserved when using `"VIP"`, where kube-proxy handles the load balancing. Using `"Proxy"` results in traffic sent directly to the load balancer, providing cloud providers greater control over relying on kube-proxy; this means that you could see an improvement in the performance of your load balancer for some cloud providers.

### Retry generate name for resources
This [enhancement](https://github.com/kubernetes/enhancements/issues/4420) improves how name conflicts are handled for Kubernetes resources created with the `generateName` field. Previously, if a name conflict occurred, the API server returned a 409 HTTP Conflict error and clients had to manually retry the request. With this update, the API server automatically retries generating a new name up to seven times in case of a conflict. This significantly reduces the chances of collision, ensuring smooth generation of up to 1 million names with less than a 0.1% probability of a conflict, providing more resilience for large-scale workloads.

## Want to know more?
New features and deprecations are also announced in the Kubernetes release notes. We will formally announce what's new in [Kubernetes v1.32](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.32.md) as part of the CHANGELOG for this release.

You can see the announcements of changes in the release notes for:

* [Kubernetes v1.31](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.31.md)

* [Kubernetes v1.30](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md)

* [Kubernetes v1.29](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md)

* [Kubernetes v1.28](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.28.md)
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,21 @@ Kubernetes has various types of probes:

## Liveness probe

Liveness probes determine when to restart a container. For example, liveness probes could catch a deadlock, when an application is running, but unable to make progress.
Liveness probes determine when to restart a container. For example, liveness probes could catch a deadlock when an application is running but unable to make progress.

If a container fails its liveness probe repeatedly, the kubelet restarts the container.

Liveness probes do not wait for readiness probes to succeed. If you want to wait before
executing a liveness probe you can either define `initialDelaySeconds`, or use a
Liveness probes do not wait for readiness probes to succeed. If you want to wait before executing a liveness probe, you can either define `initialDelaySeconds` or use a
[startup probe](#startup-probe).


## Readiness probe

Readiness probes determine when a container is ready to start accepting traffic. This is useful when waiting for an application to perform time-consuming initial tasks, such as establishing network connections, loading files, and warming caches.
Readiness probes determine when a container is ready to start accepting traffic. This is useful when waiting for an application to perform time-consuming initial tasks, such as establishing network connections, loading files, and warming caches.

If the readiness probe returns a failed state, Kubernetes removes the pod from all matching service endpoints.

Readiness probes runs on the container during its whole lifecycle.
Readiness probes run on the container during its whole lifecycle.


## Startup probe
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ On Linux, the container runtime typically configures
kernel {{< glossary_tooltip text="cgroups" term_id="cgroup" >}} that apply and enforce the
limits you defined.

- The CPU limit defines a hard ceiling on how much CPU time that the container can use.
- The CPU limit defines a hard ceiling on how much CPU time the container can use.
During each scheduling interval (time slice), the Linux kernel checks to see if this
limit is exceeded; if so, the kernel waits before allowing that cgroup to resume execution.
- The CPU request typically defines a weighting. If several different containers (cgroups)
Expand Down Expand Up @@ -244,30 +244,30 @@ directly or from your monitoring tools.
If you do not specify a `sizeLimit` for an `emptyDir` volume, that volume may
consume up to that pod's memory limit (`Pod.spec.containers[].resources.limits.memory`).
If you do not set a memory limit, the pod has no upper bound on memory consumption,
and can consume all available memory on the node. Kubernetes schedules pods based
and can consume all available memory on the node. Kubernetes schedules pods based
on resource requests (`Pod.spec.containers[].resources.requests`) and will not
consider memory usage above the request when deciding if another pod can fit on
a given node. This can result in a denial of service and cause the OS to do
out-of-memory (OOM) handling. It is possible to create any number of `emptyDir`s
a given node. This can result in a denial of service and cause the OS to do
out-of-memory (OOM) handling. It is possible to create any number of `emptyDir`s
that could potentially consume all available memory on the node, making OOM
more likely.
{{< /caution >}}

From the perspective of memory management, there are some similarities between
when a process uses memory as a work area and when using memory-backed
`emptyDir`. But when using memory as a volume like memory-backed `emptyDir`,
there are additional points below that you should be careful of.
`emptyDir`. But when using memory as a volume, like memory-backed `emptyDir`,
there are additional points below that you should be careful of:

* Files stored on a memory-backed volume are almost entirely managed by the
user application. Unlike when used as a work area for a process, you can not
user application. Unlike when used as a work area for a process, you can not
rely on things like language-level garbage collection.
* The purpose of writing files to a volume is to save data or pass it between
applications. Neither Kubernetes nor the OS may automatically delete files
applications. Neither Kubernetes nor the OS may automatically delete files
from a volume, so memory used by those files can not be reclaimed when the
system or the pod are under memory pressure.
* A memory-backed `emptyDir` is useful because of its performance, but memory
is generally much smaller in size and much higher in cost than other storage
media, such as disks or SSDs. Using large amounts of memory for `emptyDir`
media, such as disks or SSDs. Using large amounts of memory for `emptyDir`
volumes may affect the normal operation of your pod or of the whole node,
so should be used carefully.

Expand Down
Loading