Skip to content

Commit e20b18f

Browse files
authored
Merge pull request #51365 from Urvashi0109/merged-main-dev-1.34
Merged main dev 1.34
2 parents 81beed7 + 3f36d90 commit e20b18f

File tree

95 files changed

+3799
-1954
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+3799
-1954
lines changed

OWNERS_ALIASES

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ aliases:
6060
- lmktfy
6161
- natalisucks
6262
- nate-double-u
63-
- rayandas # RT 1.33 Docs Lead
6463
- reylejano
6564
- salaxander
6665
- tengqm
@@ -103,6 +102,7 @@ aliases:
103102
- bishal7679
104103
- dipesh-rawat
105104
- divya-mohan0209
105+
- jayeshmahajan
106106
- niranjandarshann
107107
sig-docs-id-owners: # Admins for Indonesian content
108108
- ariscahyadi
@@ -213,9 +213,11 @@ aliases:
213213
- mfilocha
214214
- nvtkaszpir
215215
sig-docs-uk-owners: # Admins for Ukrainian content
216+
- Andygol
216217
- Arhell
217218
- MaxymVlasov
218219
sig-docs-uk-reviews: # PR reviews for Ukrainian content
220+
- Andygol
219221
- Arhell
220222
- idvoretskyi
221223
- MaxymVlasov

assets/scss/_custom.scss

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1462,6 +1462,13 @@ main.content {
14621462
margin-bottom: 20px;
14631463
}
14641464

1465+
/* CAREERS */
1466+
1467+
// Set 14px font size for GitJobs attribution text
1468+
.gitjobs-legend {
1469+
font-size: 14px;
1470+
}
1471+
14651472
/* CASE-STUDIES */
14661473

14671474
// Many of the case studies have small variations in markup and styles;

content/de/docs/tasks/tools/install-kubectl.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ Beide Ansätze sind gleichwertig. Nach dem erneuten Laden der Shell sollte kubec
345345
{{% tab name="Bash auf macOS" %}}
346346

347347
{{< warning>}}
348-
macOS beinhaltet standardmäßig Bash 3.2. Das kubectl-Vervollständigunsskript erfordert Bash 4.1+ und funktioniert nicht mit Bash 3.2. Um dies zu umgehen, können Sie eine neuere Version von Bash unter macOS installieren (folgen Sie den Anweisungen [hier](https://itnext.io/upgrading-bash-on-macos-7138bd1066ba)). Die folgenden Anweisungen funktionieren nur, wenn Sie Bash 4.1 oder höher verwenden.
348+
macOS beinhaltet standardmäßig Bash 3.2. Das kubectl-Vervollständigunsskript erfordert Bash 4.1+ und funktioniert nicht mit Bash 3.2. Um dies zu umgehen, können Sie eine neuere Version von Bash unter macOS installieren (folgen Sie den Anweisungen [hier](https://apple.stackexchange.com/a/292760)). Die folgenden Anweisungen funktionieren nur, wenn Sie Bash 4.1 oder höher verwenden.
349349
{{< /warning >}}
350350

351351
### Einführung
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
layout: blog
3+
title: "Changes to Kubernetes Slack"
4+
date: 2025-06-16
5+
canonicalUrl: https://www.kubernetes.dev/blog/2025/06/16/changes-to-kubernetes-slack-2025/
6+
slug: changes-to-kubernetes-slack
7+
Author: >
8+
[Josh Berkus](https://github.com/jberkus)
9+
---
10+
11+
**UPDATE**: We’ve received notice from Salesforce that our Slack workspace **WILL NOT BE DOWNGRADED** on June 20th. Stand by for more details, but for now, there is no urgency to back up private channels or direct messages.
12+
13+
~~Kubernetes Slack will lose its special status and will be changing into a standard free Slack on June 20, 2025~~. Sometime later this year, our community may move to a new platform. If you are responsible for a channel or private channel, or a member of a User Group, you will need to take some actions as soon as you can.
14+
15+
For the last decade, Slack has supported our project with a free customized enterprise account. They have let us know that they can no longer do so, particularly since our Slack is one of the largest and more active ones on the platform. As such, they will be downgrading it to a standard free Slack while we decide on, and implement, other options.
16+
17+
On Friday, June 20, we will be subject to the [feature limitations of free Slack](https://slack.com/help/articles/27204752526611-Feature-limitations-on-the-free-version-of-Slack). The primary ones which will affect us will be only retaining 90 days of history, and having to disable several apps and workflows which we are currently using. The Slack Admin team will do their best to manage these limitations.
18+
19+
Responsible channel owners, members of private channels, and members of User Groups should [take some actions](https://github.com/kubernetes/community/blob/master/communication/slack-migration-faq.md#what-actions-do-channel-owners-and-user-group-members-need-to-take-soon) to prepare for the upgrade and preserve information as soon as possible.
20+
21+
The CNCF Projects Staff have proposed that our community look at migrating to Discord. Because of existing issues where we have been pushing the limits of Slack, they have already explored what a Kubernetes Discord would look like. Discord would allow us to implement new tools and integrations which would help the community, such as GitHub group membership synchronization. The Steering Committee will discuss and decide on our future platform.
22+
23+
Please see our [FAQ](https://github.com/kubernetes/community/blob/master/communication/slack-migration-faq.md), and check the [kubernetes-dev mailing list](https://groups.google.com/a/kubernetes.io/g/dev/) and the [#announcements channel](https://kubernetes.slack.com/archives/C9T0QMNG4) for further news. If you have specific feedback on our Slack status join the [discussion on GitHub](https://github.com/kubernetes/community/issues/8490).
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
---
2+
layout: blog
3+
title: "Image Compatibility In Cloud Native Environments"
4+
date: 2025-06-25
5+
draft: false
6+
slug: image-compatibility-in-cloud-native-environments
7+
author: >
8+
Chaoyi Huang (Huawei),
9+
Marcin Franczyk (Huawei),
10+
Vanessa Sochat (Lawrence Livermore National Laboratory)
11+
---
12+
13+
In industries where systems must run very reliably and meet strict performance criteria such as telecommunication, high-performance or AI computing, containerized applications often need specific operating system configuration or hardware presence.
14+
It is common practice to require the use of specific versions of the kernel, its configuration, device drivers, or system components.
15+
Despite the existence of the [Open Container Initiative (OCI)](https://opencontainers.org/), a governing community to define standards and specifications for container images, there has been a gap in expression of such compatibility requirements.
16+
The need to address this issue has led to different proposals and, ultimately, an implementation in Kubernetes' [Node Feature Discovery (NFD)](https://kubernetes-sigs.github.io/node-feature-discovery/stable/get-started/index.html).
17+
18+
[NFD](https://kubernetes-sigs.github.io/node-feature-discovery/stable/get-started/index.html) is an open source Kubernetes project that automatically detects and reports [hardware and system features](https://kubernetes-sigs.github.io/node-feature-discovery/v0.17/usage/customization-guide.html#available-features) of cluster nodes. This information helps users to schedule workloads on nodes that meet specific system requirements, which is especially useful for applications with strict hardware or operating system dependencies.
19+
20+
## The need for image compatibility specification
21+
22+
### Dependencies between containers and host OS
23+
24+
A container image is built on a base image, which provides a minimal runtime environment, often a stripped-down Linux userland, completely empty or distroless. When an application requires certain features from the host OS, compatibility issues arise. These dependencies can manifest in several ways:
25+
26+
- **Drivers**:
27+
Host driver versions must match the supported range of a library version inside the container to avoid compatibility problems. Examples include GPUs and network drivers.
28+
- **Libraries or Software**:
29+
The container must come with a specific version or range of versions for a library or software to run optimally in the environment. Examples from high performance computing are MPI, EFA, or Infiniband.
30+
- **Kernel Modules or Features:**:
31+
Specific kernel features or modules must be present. Examples include having support of write protected huge page faults, or the presence of VFIO
32+
- And more…
33+
34+
While containers in Kubernetes are the most likely unit of abstraction for these needs, the definition of compatibility can extend further to include other container technologies such as Singularity and other OCI artifacts such as binaries from a spack binary cache.
35+
36+
### Multi-cloud and hybrid cloud challenges
37+
38+
Containerized applications are deployed across various Kubernetes distributions and cloud providers, where different host operating systems introduce compatibility challenges.
39+
Often those have to be pre-configured before workload deployment or are immutable.
40+
For instance, different cloud providers will include different operating systems like:
41+
42+
- **RHCOS/RHEL**
43+
- **Photon OS**
44+
- **Amazon Linux 2**
45+
- **Container-Optimized OS**
46+
- **Azure Linux OS**
47+
- And more...
48+
49+
Each OS comes with unique kernel versions, configurations, and drivers, making compatibility a non-trivial issue for applications requiring specific features.
50+
It must be possible to quickly assess a container for its suitability to run on any specific environment.
51+
52+
### Image compatibility initiative
53+
54+
An effort was made within the [Open Containers Initiative Image Compatibility](https://github.com/opencontainers/wg-image-compatibility) working group to introduce a standard for image compatibility metadata.
55+
A specification for compatibility would allow container authors to declare required host OS features, making compatibility requirements discoverable and programmable.
56+
The specification implemented in Kubernetes Node Feature Discovery is one of the discussed proposals.
57+
It aims to:
58+
59+
- **Define a structured way to express compatibility in OCI image manifests.**
60+
- **Support a compatibility specification alongside container images in image registries.**
61+
- **Allow automated validation of compatibility before scheduling containers.**
62+
63+
The concept has since been implemented in the Kubernetes Node Feature Discovery project.
64+
65+
### Implementation in Node Feature Discovery
66+
67+
The solution integrates compatibility metadata into Kubernetes via NFD features and the [NodeFeatureGroup](https://kubernetes-sigs.github.io/node-feature-discovery/v0.17/usage/custom-resources.html#nodefeaturegroup) API.
68+
This interface enables the user to match containers to nodes based on exposing features of hardware and software, allowing for intelligent scheduling and workload optimization.
69+
70+
### Compatibility specification
71+
72+
The compatibility specification is a structured list of compatibility objects containing *[Node Feature Groups](https://kubernetes-sigs.github.io/node-feature-discovery/v0.17/usage/custom-resources.html#nodefeaturegroup)*.
73+
These objects define image requirements and facilitate validation against host nodes.
74+
The feature requirements are described by using [the list of available features](https://kubernetes-sigs.github.io/node-feature-discovery/v0.17/usage/customization-guide.html#available-features) from the NFD project.
75+
The schema has the following structure:
76+
77+
- **version** (string) - Specifies the API version.
78+
- **compatibilities** (array of objects) - List of compatibility sets.
79+
- **rules** (object) - Specifies [NodeFeatureGroup](https://kubernetes-sigs.github.io/node-feature-discovery/v0.17/usage/custom-resources.html#nodefeaturegroup) to define image requirements.
80+
- **weight** (int, optional) - Node affinity weight.
81+
- **tag** (string, optional) - Categorization tag.
82+
- **description** (string, optional) - Short description.
83+
84+
An example might look like the following:
85+
86+
```yaml
87+
version: v1alpha1
88+
compatibilities:
89+
- description: "My image requirements"
90+
rules:
91+
- name: "kernel and cpu"
92+
matchFeatures:
93+
- feature: kernel.loadedmodule
94+
matchExpressions:
95+
vfio-pci: {op: Exists}
96+
- feature: cpu.model
97+
matchExpressions:
98+
vendor_id: {op: In, value: ["Intel", "AMD"]}
99+
- name: "one of available nics"
100+
matchAny:
101+
- matchFeatures:
102+
- feature: pci.device
103+
matchExpressions:
104+
vendor: {op: In, value: ["0eee"]}
105+
class: {op: In, value: ["0200"]}
106+
- matchFeatures:
107+
- feature: pci.device
108+
matchExpressions:
109+
vendor: {op: In, value: ["0fff"]}
110+
class: {op: In, value: ["0200"]}
111+
```
112+
113+
### Client implementation for node validation
114+
115+
To streamline compatibility validation, we implemented a [client tool](https://kubernetes-sigs.github.io/node-feature-discovery/v0.17/reference/node-feature-client-reference.html) that allows for node validation based on an image's compatibility artifact.
116+
In this workflow, the image author would generate a compatibility artifact that points to the image it describes in a registry via the referrers API.
117+
When a need arises to assess the fit of an image to a host, the tool can discover the artifact and verify compatibility of an image to a node before deployment.
118+
The client can validate nodes both inside and outside a Kubernetes cluster, extending the utility of the tool beyond the single Kubernetes use case.
119+
In the future, image compatibility could play a crucial role in creating specific workload profiles based on image compatibility requirements, aiding in more efficient scheduling.
120+
Additionally, it could potentially enable automatic node configuration to some extent, further optimizing resource allocation and ensuring seamless deployment of specialized workloads.
121+
122+
### Examples of usage
123+
124+
1. **Define image compatibility metadata**
125+
A [container image](/docs/concepts/containers/images) can have metadata that describes its requirements based on features discovered from nodes, like kernel modules or CPU models.
126+
The previous compatibility specification example in this article exemplified this use case.
127+
128+
2. **Attach the artifact to the image**
129+
The image compatibility specification is stored as an OCI artifact.
130+
You can attach this metadata to your container image using the [oras](https://oras.land/) tool.
131+
The registry only needs to support OCI artifacts, support for arbitrary types is not required.
132+
Keep in mind that the container image and the artifact must be stored in the same registry.
133+
Use the following command to attach the artifact to the image:
134+
135+
```bash
136+
oras attach \
137+
--artifact-type application/vnd.nfd.image-compatibility.v1alpha1 <image-url> \
138+
<path-to-spec>.yaml:application/vnd.nfd.image-compatibility.spec.v1alpha1+yaml
139+
```
140+
141+
3. **Validate image compatibility**
142+
After attaching the compatibility specification, you can validate whether a node meets the image's requirements.
143+
This validation can be done using the [nfd client](https://kubernetes-sigs.github.io/node-feature-discovery/v0.17/reference/node-feature-client-reference.html):
144+
145+
`nfd compat validate-node --image <image-url>`
146+
147+
4. **Read the output from the client**
148+
Finally you can read the report generated by the tool or use your own tools to act based on the generated JSON report.
149+
150+
![validate-node command output](validate-node-output.png)
151+
152+
## Conclusion
153+
154+
The addition of image compatibility to Kubernetes through Node Feature Discovery underscores the growing importance of addressing compatibility in cloud native environments.
155+
It is only a start, as further work is needed to integrate compatibility into scheduling of workloads within and outside of Kubernetes.
156+
However, by integrating this feature into Kubernetes, mission-critical workloads can now define and validate host OS requirements more efficiently.
157+
Moving forward, the adoption of compatibility metadata within Kubernetes ecosystems will significantly enhance the reliability and performance of specialized containerized applications, ensuring they meet the stringent requirements of industries like telecommunications, high-performance computing or any environment that requires special hardware or host OS configuration.
158+
159+
## Get involved
160+
161+
Join the [Kubernetes Node Feature Discovery](https://kubernetes-sigs.github.io/node-feature-discovery/v0.17/contributing/) project if you're interested in getting involved with the design and development of Image Compatibility API and tools.
162+
We always welcome new contributors.
117 KB
Loading

content/en/careers/_index.html

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@
1010
weight: 70
1111
---
1212

13-
<div align="center">
14-
<iframe id="gitjobs" src="https://gitjobs.dev/embed?ts_query=kubernetes" style="width:100%;max-width:870px;height:100%;display:block;border:none;"></iframe>
15-
<div>Powered by <a href="https://gitjobs.dev" target="_blank">GitJobs</a></div>
16-
<p>&nbsp;</p>
13+
<div class="d-flex flex-column justify-content-center mt-4 mt-md-5 px-2 px-md-3 px-lg-0">
14+
<iframe id="gitjobs" class="mx-auto" src="https://gitjobs.dev/embed?ts_query=kubernetes" style="width:100%;max-width:870px;height:100%;display:block;border:none;"></iframe>
15+
<div class="mb-4 mb-md-5 mt-1 mx-auto gitjobs-legend">
16+
Powered by <a href="https://gitjobs.dev" target="_blank">GitJobs</a>
17+
</div>
1718
</div>
1819

1920
<script type="module">

content/en/case-studies/golfnow/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ <h2>Challenge</h2>
2020

2121
<h2>Solution</h2>
2222

23-
<p>Turning to microservices and containerization, GolfNow began moving its applications and databases from third-party services to its own clusters running on <a href="https://www.docker.com/">Docker</a> and <a href="http://kubernetes.io/">Kubernetes.</a></p>
23+
<p>Turning to microservices and containerization, GolfNow began moving its applications and databases from third-party services to its own clusters running on <a href="https://www.docker.com/">Docker</a> and <a href="https://kubernetes.io/">Kubernetes.</a></p>
2424

2525
<h2>Impact</h2>
2626

@@ -50,7 +50,7 @@ <h2>Impact</h2>
5050

5151
<p>GolfNow's dev team ran an "internal, low-key" proof of concept and were won over. "We really liked how easy it was to be able to pass containers around to each other and have them up and running in no time, exactly the way it was running on my machine," says Sheriff. "Because that is always the biggest gripe that Ops has with developers, right? 'It worked on my machine!' But then we started getting to the point of, 'How do we make sure that these things stay up and running?'"</p>
5252

53-
<p>That led the team on a quest to find the right orchestration system for the company's needs. Sheriff says the first few options they tried were either too heavy or "didn't feel quite right." In late summer 2015, they discovered the just-released <a href="http://kubernetes.io/">Kubernetes</a>, which Sheriff immediately liked for its ease of use. "We did another proof of concept," he says, "and Kubernetes won because of the fact that the community backing was there, built on top of what Google had already done."</p>
53+
<p>That led the team on a quest to find the right orchestration system for the company's needs. Sheriff says the first few options they tried were either too heavy or "didn't feel quite right." In late summer 2015, they discovered the just-released <a href="https://kubernetes.io/">Kubernetes</a>, which Sheriff immediately liked for its ease of use. "We did another proof of concept," he says, "and Kubernetes won because of the fact that the community backing was there, built on top of what Google had already done."</p>
5454

5555
<p>But before they could go with Kubernetes, <a href="http://www.nbc.com/">NBC</a>, GolfNow's parent company, also asked them to comparison shop with another company. Sheriff and his team liked the competing company's platform user interface, but didn't like that its platform would not allow containers to run natively on Docker. With no clear decision in sight, Sheriff's VP at GolfNow, Steve McElwee, set up a three-month trial during which a GolfNow team (consisting of Sheriff and Josh, who's now Lead Architect, Open Platforms) would build out a Kubernetes environment, and a large NBC team would build out one with the other company's platform.</p>
5656

content/en/docs/concepts/scheduling-eviction/node-pressure-eviction.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ weight: 100
66

77
{{<glossary_definition term_id="node-pressure-eviction" length="short">}}</br>
88

9-
{{< feature-state feature_gate_name="KubeletSeparateDiskGC" >}}
109

1110
{{<note>}}
11+
{{< feature-state feature_gate_name="KubeletSeparateDiskGC" >}}
1212
The _split image filesystem_ feature, which enables support for the `containerfs`
1313
filesystem, adds several new eviction signals, thresholds and metrics. To use
1414
`containerfs`, the Kubernetes release v{{< skew currentVersion >}} requires the

content/en/docs/concepts/windows/intro.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,10 +324,10 @@ kernel patch.
324324

325325
### Mirantis Container Runtime {#mcr}
326326

327-
[Mirantis Container Runtime](https://docs.mirantis.com/mcr/20.10/overview.html) (MCR)
327+
[Mirantis Container Runtime](https://docs.mirantis.com/mcr/25.0/overview.html) (MCR)
328328
is available as a container runtime for all Windows Server 2019 and later versions.
329329

330-
See [Install MCR on Windows Servers](https://docs.mirantis.com/mcr/20.10/install/mcr-windows.html) for more information.
330+
See [Install MCR on Windows Servers](https://docs.mirantis.com/mcr/25.0/install/mcr-windows.html) for more information.
331331

332332
## Windows OS version compatibility {#windows-os-version-support}
333333

0 commit comments

Comments
 (0)