The Cloud Native Computing Foundation (CNCF) released Kubernetes 1.26 with the name Electrifying. The release has new features, such as Image Registry Changes, Dynamic Resource Allocation, and unhealthy pod eviction enhancements.
Also, there are beta features included in the release, such as non-graceful node shutdown, retroactive default storage class assignment, and an improved kubectl events subcommand.
Several features have been marked as generally available or stable, such as support for mixed protocols, reserved service IP ranges, and windows privileged containers. In version 1.26, the CRI v1alpha2 API is deprecated, and legacy authentication for Azure and GCP is removed.
In the new release, container images for Kubernetes are published entirely in a new container image registry endpoint registry.k8s.io introduced in the previous release. The change reduced the dependency on a single entity allowing the spread of the load between Google and Amazon and opening the door for other cloud providers in the future.
Dynamic Resource Allocation has been introduced to provide better resource management for advanced hardware such as GPUs and FPGAs. This will enable the scheduler not only to take CPU, memory, and storage into account but limit the access to such hardware.
Also, a new feature gate PDBUnhealthyPodEvictionPolicy has been added to define the criteria for when unhealthy pods should be marked for eviction when using a PodDisruptionBudget. A way to limit the disruption to running applications when pods need to be rescheduled.
In version 1.26, Service Level Indicator(SLI) metrics are exposed for each Kubernetes component in Prometheus format to monitor and measure the availability of Kubernetes internals.
Non-graceful node shutdown moved to beta in version 1.26, and it’s turned on by default. In the past, when a node is shut down or crashes but not detected by the kubelet, a pod that’s part of a StatefulSet will be stuck in a terminating status forever until manually deleted. With this feature turned on, pods will be forcibly deleted, and new pods will be created on a different node.
Retroactive default storage class assignment was first introduced in version 1.25 and is now in beta. Such a feature covers the scenario in which cluster administrators change the default storage class. If this feature is turned on, all PVCs with either empty or no StorageClassName attribute will automatically use the new default storage class.
Another feature that was first introduced in version 1.25 and is now in beta is considering both node affinity and taint when configuring a topology spread constraint. This enhances the spread of workloads across cluster nodes to increase high availability as well as resource utilization.
Enhancements added to the kubectl events subcommand in v1.23 graduated to beta in this release. The purpose of those changes is to support all the functionalities of the "kubectl get events" command and address issues related to sorting.
Support for windows privileged containers became generally available in this release and enabled by default. This feature allows windows containers to have access to the underlying host for system administration, security, and monitoring or logging workloads.
The CPU manager, which enables better placement of workloads in the kubelet, also graduated to generally available in version 1.26 and turned on by default. This is useful for workloads that are CPU-intensive or sensitive to CPU throttling.
According to the release notes, Kubernetes version 1.26 has 37 enhancements, including 16 new, 11 becoming generally available or stable, and 10 moving to beta. In addition, 12 features are being deprecated or removed.
CNCF will host a webinar on January 17, 2023, to discuss the updates from the release team and answer questions from the community.