Skip to content

Commit f2ef74a

Browse files
authored
Addressing more review comments from sig-docs-blog
Update 2024-11-08-kubernetes-1.32-sneak-peek.md
1 parent 2e49c2a commit f2ef74a

File tree

1 file changed

+25
-27
lines changed

1 file changed

+25
-27
lines changed

content/en/blog/_posts/2024-11-08-kubernetes-1.32-sneak-peek.md

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ Whether an API is removed due to a feature graduating from beta to stable or bec
3030

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

33-
However, in Kubernetes v1.32, this approach to DRA has been 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.
33+
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.
3434

3535
The decision to remove this feature originated from its incompatibility with cluster autoscaling, as resource availability was made non-transparent, complicating decision-making for both Cluster Autoscaler and controllers.
3636
The newly added Structured Parameter model substitutes the functionality.
3737

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

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

@@ -56,43 +56,39 @@ For more information, please refer to the [API deprecation guide](/docs/referenc
5656
In this release, like the previous one, the Kubernetes project continues introducing 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. The improvements for this release include:
5757

5858
- Partitionable devices support: [KEP #4815](https://github.com/kubernetes/enhancements/issues/4815)
59-
- Resource Claim Status and standardized network interface data: [KEP #4817](https://github.com/kubernetes/enhancements/issues/4817)
59+
- Resource Claim status and standardized network interface data: [KEP #4817](https://github.com/kubernetes/enhancements/issues/4817)
6060
- Structured parameters: [KEP #4381](https://github.com/kubernetes/enhancements/issues/4381)
61-
- Prioritized Alternatives in Device Requests: [KEP #4816](https://github.com/kubernetes/enhancements/issues/4816)
62-
- Resource Health Status in Pod Status: [KEP #4680](https://github.com/kubernetes/enhancements/issues/4680)
61+
- Prioritized alternatives in device requests: [KEP #4816](https://github.com/kubernetes/enhancements/issues/4816)
62+
- Resource health status in Pod status: [KEP #4680](https://github.com/kubernetes/enhancements/issues/4680)
6363

6464
**Partitionable devices support**
6565

66-
KEP [#4815](https://github.com/kubernetes/enhancements/issues/4815) introduces improvements to Kubernetes' Dynamic Resource Allocation (DRA) framework, enabling more efficient support for high-performance partitionable devices like GPUs, FPGAs, and network adapters. Currently, these devices are treated as whole units, potentially leading to resource inefficiencies when workloads require only a fraction of a device’s capacity.
66+
KEP [#4815](https://github.com/kubernetes/enhancements/issues/4815) proposes improvements to Kubernetes' Dynamic Resource Allocation (DRA) framework, enabling more efficient support for high-performance partitionable devices like GPUs, FPGAs, and network adapters. Currently, these devices are treated as whole units, potentially leading to resource inefficiencies when workloads require only a fraction of a device’s capacity.
6767
By extending the DRA framework, this enhancement allows workloads to request and consume portions of these resources, increasing utilization and scheduling flexibility. The proposed enhancement also provides primitives for representing both full devices and their partitions more compactly, supporting the recent transition from "classic DRA" to the "structured parameters" approach.
68-
The newly proposed extensions, fully transparent to the end-user, enable vendors to provision “overlapping” partitions, ensuring that the scheduler does not allocate conflicting partitions. This approach allows vendors to dynamically create new partitions after allocation, eliminating the need for pre-partitioned configurations while still supporting device partition selection through existing mechanisms like `ResourceClaim` and `ResourceSlice` in Kubernetes v1.31.
68+
The newly proposed extensions, fully transparent to the end-user, enable device management plugins to provision “overlapping” partitions, ensuring that the scheduler does not allocate conflicting partitions. This approach allows vendors to dynamically create new partitions after allocation, eliminating the need for pre-partitioned configurations while still supporting device partition selection through existing mechanisms like `ResourceClaim` and `ResourceSlice` in Kubernetes v1.31.
6969

70-
**Resource Claim status and standardized network interface data**
70+
**ResourceClaim status and standardized network interface data**
7171

72-
KEP [#4817](https://github.com/kubernetes/enhancements/issues/4817) adds driver-owned fields in `ResourceClaim.Status` with the possibility of having standardized network interface data.
73-
This proposal enhances the `ResourceClaim.Status` field by adding a new sub-field: `Devices`.
74-
The new entry allows the reporting of driver-specific device status data for each allocated device in a `ResourceClaim`. Allowing the drivers to report such data will improve observability and troubleshooting and enable new functionalities such as network services (in case the IP addresses of a network device are reported).
72+
KEP [#4817](https://github.com/kubernetes/enhancements/issues/4817) proposes adding new driver-owned fields in the `status` field of ResourceClaim with the possibility of having standardized network interface data.
73+
This is a proposal to enhance the `status` field of ResourceClaims by adding a new sub-field: `devices`.
74+
The new field will allow the reporting of driver-specific device status data for each allocated device in a ResourceClaim. Allowing the drivers to report such data will improve observability and troubleshooting and enable new functionalities such as network services (in case the IP addresses of a network device are reported).
7575

76-
77-
**DRA Structured Parameters**
76+
**DRA structured parameters**
7877

7978
The original dynamic resource allocation (DRA) uses claim and class parameters that are opaque to Kubernetes. KEP [#4381](https://github.com/kubernetes/enhancements/issues/4381) introduces structured parameters so that kube-scheduler and Cluster Autoscaler can handle a claim allocation without relying on a third-party driver.
8079
As users increasingly adopt Kubernetes as their management solution for batch-processing workloads and edge computing, the need to expose specialized hardware to Pods is increasing.
81-
Such workloads no longer need just RAM and CPU, so this KEP introduced a new API to describe which of these specialized resources a Pod needs, such as devices like a GPU or other kinds of accelerators.
80+
Such workloads no longer need just RAM and CPU, so Kubernetes v1.32 will introduce a new API to describe which of these specialized resources a Pod needs, such as devices like a GPU or other kinds of accelerators.
8281

8382

8483
**Prioritized alternatives in device requests**
8584

86-
KEP [#4816](https://github.com/kubernetes/enhancements/issues/4816) adds support for a prioritized list of selection criteria attached to a device request in a `ResourceClaim`.
87-
The DRA's Structured Parameters feature has added the ability to make requests for very specific types of devices using a `ResourceClaim`.
88-
89-
However, the current API did not allow the user to indicate any priority when multiple types or configurations of devices might have met the workload's needs. This feature allows the user to specify alternative requests that satisfy the workloads' need, giving more flexibility to the scheduler in the workloads' scheduling phase.
90-
85+
KEP [#4816](https://github.com/kubernetes/enhancements/issues/4816) proposes support for prioritized selection criteria associated to a device request in a ResourceClaim.
86+
DRA _structured parameters_ will gain the ability to make requests for very specific types of devices using a ResourceClaim.
9187

9288
**Add resource health status to the Pod status**
9389

94-
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) makes troubleshooting of Pod crashes easier by exposing device health via `Pod Status`.
95-
90+
It isn't easy to know when a Pod uses a device that has failed or is temporarily unhealthy.
91+
KEP [#4680](https://github.com/kubernetes/enhancements/issues/4680) proposes exposing device health via Pod `status`, making troubleshooting of Pod crashes easier.
9692

9793
### Windows strikes back!
9894

@@ -103,31 +99,33 @@ KEP [#4885](https://github.com/kubernetes/enhancements/issues/4885) adds CPU and
10399

104100
### Allow special characters in environment variables
105101

106-
With the graduation of [this feature](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.
102+
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.
107103

108104
### Field status.hostIPs added for Pod
109105

110-
[This enhancement](https://github.com/kubernetes/enhancements/issues/2681) introduces a new field, `status.hostIPs`, to the Kubernetes Pod API, enabling support for multiple IP addresses (IPv4 and IPv6) assigned to a node. Previously, the Pod status only included a singular HostIP field, which limited address configurations, particularly in dual-stack networks. This enhancement allows the API to store multiple IP addresses in an array, accessible via the Downward API, which applications can leverage for environments with complex IP requirements, such as IPv6 migrations.
106+
This [enhancement](https://github.com/kubernetes/enhancements/issues/2681) introduces a new field, `status.hostIPs`, to the Kubernetes Pod API, enabling support for multiple IP addresses (IPv4 and IPv6) assigned to a node. Previously, the Pod status only included a singular HostIP field, which limited address configurations, particularly in dual-stack networks. This enhancement allows the API to store multiple IP addresses in an array, accessible via the Downward API, which applications can leverage for environments with complex IP requirements, such as IPv6 migrations.
111107
The feature is controlled by the PodHostIPs feature gate, supporting flexibility for gradual rollout.
112108

109+
For more information about giving containers information about themselves, visit the [downward-api documentation](https://kubernetes.io/docs/concepts/workloads/pods/downward-api/).
110+
113111
### Make Kubernetes aware of the LoadBalancer behavior
114112

115113
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.
116114

117115
### Support PSI based on cgroupv2
118-
[This KEP](https://github.com/kubernetes/enhancements/issues/4205) adds support in the Kubelet to read Pressure Stall Information (PSI) metrics for CPU, Memory and I/O resources exposed from cAdvisor and runc. Pressure metrics are like a barometer that can warn about impending resource shortages on a node. This will enable the Kubelet to report node conditions, which can be utilized to prevent the scheduling of Pods on nodes experiencing significant resource constraints.
116+
This [KEP](https://github.com/kubernetes/enhancements/issues/4205) adds support in the Kubelet to read Pressure Stall Information (PSI) metrics for CPU, Memory and I/O resources exposed from cAdvisor and runc. Pressure metrics are like a barometer that can warn about impending resource shortages on a node. This will enable the Kubelet to report node conditions, which can be utilized to prevent the scheduling of Pods on nodes experiencing significant resource constraints.
119117

120118
### Retry generate name for resources
121-
[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.
119+
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.
122120

123121
### Mutating admission policies
124122

125-
[This enhancement](https://github.com/kubernetes/enhancements/issues/3962) introduces "Mutating Admission Policies" using CEL (Common Expression Language), allowing Kubernetes users to define in-line mutating policies without complex admission webhooks.
123+
This [enhancement](https://github.com/kubernetes/enhancements/issues/3962) will introduce _mutating admission policies_ using CEL (Common Expression Language), allowing Kubernetes users to declaratively in-line mutating policies without complex admission webhooks.
126124
This enhancement simplifies common mutating tasks—such as adding labels, setting fields, or injecting sidecars—by enabling policies to be directly defined within the Kubernetes API server. With CEL's object instantiation and Server-Side Apply merge algorithms, these policies can minimize reinvocation, reduce latency, and eliminate the overhead associated with webhook management. This new approach enhances Kubernetes extensibility by reducing operational complexity, while providing a scalable, built-in solution for secure and efficient policy management across diverse use cases like GitOps and CI/CD. Making Kubernetes admission control more accessible and powerful for developers and administrators alike.
127125

128126
### Control over terminating Pods in deployments
129127

130-
[This enhancement](https://github.com/kubernetes/enhancements/issues/3973) adds a new field `.spec.podReplacementPolicy` to Deployments to specify whether new Pods can be created only after old Pods have finished terminating or once old Pods start terminating. The default behavior depends on the deployment strategy. Specifying this Pod replacement policy can better control the speed of rollouts/scaling and potentially avoid problems with excessive resource usage.
128+
This [enhancement](https://github.com/kubernetes/enhancements/issues/3973) adds a new field `.spec.podReplacementPolicy` to Deployments to specify whether new Pods can be created only after old Pods have finished terminating or once old Pods start terminating. The default behavior depends on the deployment strategy. Specifying this Pod replacement policy can better control the speed of rollouts/scaling and potentially avoid problems with excessive resource usage.
131129

132130
## Want to know more?
133131
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.

0 commit comments

Comments
 (0)