Kubernetes v1.32: What’s New?
Kubernetes v1.32 is set to release on December 11, and like previous versions, Kubernetes v1.32 brings a mix of stable, beta, and alpha features. A total of 45 enhancements are tracked for the code freeze in this release. Among these, 13 have graduated to stable, 12 are moving to Beta, and 18 have progressed to Alpha, with one feature marked for deprecation.Let’s get started with some of the exciting features and enhancements that k8s v1.32 is coming up with and how it can help its end users.
Features Graduating to Stable Stage
Auto-remove PVCs created by StatefulSet (1847)
Feature Group: sig-storage
Provides a feature to auto-delete the PVCs created by StatefulSet when the volumes are no longer in use to ease management of StatefulSets that don't live indefinitely. As the application state should survive over StatefulSet maintenance, the feature ensures that the pod restarts due to non-scale-down events such as rolling update or node drain do not delete the PVC.
Sleep Action for PreStop Hook (#3960)
Feature Group: sig-node
This allows containers to pause for some duration before termination. This provides a more straightforward way to manage graceful shutdowns improve the overall lifecycle management of containers, and handle new connections from clients that have not yet finished endpoint termination during the pod termination.
Features moving to Beta
Kubelet OpenTelemetry Tracing (#2831)
Feature-group: sig-node
The kubelet generates and exports span for reconcile loops it initiates and for incoming/outgoing requests to the kubelet's authenticated HTTP servers, as well as the CRI, CNI, and CSI interfaces. An example of a reconcile loop is the creation of a pod. Pod creation involves pulling the image, creating the pod sandbox, and creating the container. With stateful workloads, attachment and mounting of volumes referred by a pod might be included. Trace data can be used to diagnose latency within such flows.
Add options to reject non-SMT-aligned workload (#2625)
Feature-Group: sig-node
This feature prevents workloads from requesting cores that don't consume a full CPU by rejecting them. This guarantees that no physical core is shared among different containers, which improves cache efficiency and mitigates the interference with other workloads that can consume resources of the same physical core, e.g. first-level caches.
Support managed-by mechanism for Jobs (#4368)
Feature-Group: sig-node
This feature introduces a 'managedBy' field for Kubernetes Jobs, enabling external controllers to manage job synchronization facilitating multi-cluster job dispatching by allowing Jobs created in a management cluster to be mirrored in worker clusters.
Features moving to Alpha
Flagz for Kubernetes Components (#4828)
Feature-Group: sig-instrumentation
It provides distinct flags for kubernetes components that help users with the ability to dynamically inspect and understand the active flags of running Kubernetes components.
Statusz for Kubernetes Component (4827)
Feature-Group: sig- Instrumentation
This feature helps operations to troubleshoot a performance issue and easily check for dependency conflicts or version mismatches without sifting through logs by adding a new endpoint, /statusz on all core Kubernetes components.
VolumeSource: OCI Artifact or OCI Image (#4639)
Feature-Group: sig-storage
This feature introduces a new `VolumeSource` type that allows mounting OCI images and/or artifacts, simplifies the process of sharing files among containers in a pod, and provides a runtime guideline of how artifact files and directories should be mounted.
Allow setting of resource requests & limits at Pod level (#2837)
Feature-Group: sig-architecture
Currently, resource allocation on PodSpec is container-centric, allowing users to specify resource requests and limits for each container. This feature extends the Pod API to allow specifying resource specs (requests and limits) at the pod level. This is also compatible with existing usage of container-level requests/limits, and other features like topology manager, memory manager, VPA, etc.
Split “stdout” and “stderr” log stream of container (#3288)
Feature-Group: sig-api-machinery
Currently, kubelet actually has the potential to return a certain log stream of a container, but this ability is not exposed to the user. This feature enables an API server to return a specific log stream of a container and to fetch a specific log stream of a container.
In-Place Update of Pod Resources (#1287)
Feature-Group: sig-autoscaling
Currently, changing resource allocation requires the Pod to be recreated since the PodSpec's Container Resources are immutable while many stateless workloads are designed to withstand such a disruption, some are more sensitive, especially when using a low number of Pod replicas.
Primary: allow to change container resource requests & limits without necessarily restarting the container.
Secondary: allow actors (users, VPA, StatefulSet, JobController) to decide how to proceed if in-place resource resize is not possible.
Secondary: allow users to specify which Containers can be resized without a restart.
DRA: Structured parameter (#1287)
Feature-Group: sig-node
The original dynamic resource allocation (DRA) uses claim and class parameters that are opaque to Kubernetes. With structured parameters, the kube-scheduler and Cluster Autoscaler can handle simulated claim allocation themselves without relying on a third-party driver.
Retry Generate Name (#4420)
Feature-Group: sig-api-machinery
This feature helps create requests using “generateName” that are retried automatically by the API server when the generated name conflicts with an existing resource name, up to a max limit of 7 retries.
Conclusion
Kubernetes v1.32 is coming up with lots of exciting changes and the adoption of these improvements is crucial in keeping your infrastructure modern, secure, and optimized for the future. If you liked this blog and want to see the changes in the previous Kubernetes version, please refer to the blogs below.