Kubernetes being open-source has always been a community effort from a variety of individuals varying from veterans to newbies in technology. Each contribution matters and brings a feeling of self-satisfaction with its new releases.
Like a garden, this release has ever-changing growth, challenges, and opportunities. This theme celebrates the meticulous care, intention, and efforts to get the release to where we are today.
This release consists of 45 enhancements. Of those enhancements, 19 are entering Alpha, 14 have graduated to Beta, and 12 have graduated to Stable.
Some new features of Planternetes
Changes to supported skew between control plane and node versions: Maintenance is key when we run our workloads on the K8s pods, but synchronizing the pods with the latest security patches would require us to drain the node and install the changes. As, a result this practice supports the downtime of the applications. Previously, K8s users needed to perform yearly annual upgrades twice a year but with the introduction of v1.28, you have the option of making a minor version upgrade to nodes just once in each calendar year and still staying within upstream support.
Recovery from non-graceful node shutdown: Earlier, if a node suddenly stopped working due to hardware issues or a broken OS, Kubernetes could allot a different pod to the workload and later clean up the mess. This is now a stable feature in v1.28. This allows stateful workloads to move to different nodes successfully without hampering the uptime of the application.
Beta support for enabling swap space on Linux: Swap space is used in Linux when the physical memory is full. When we want to carry out a crucial task but the main memory and RAM are full, swap space is used to swap out the inactive files. This feature supports swap space to nodes in a controlled and predictable manner so that the users can build and test their cluster on the top of swap.
Automatic, retroactive assignment of a default StorageClass graduates to stable: Kubernetes automatically sets a
storageClassName
for a PersistentVolumeClaim (PVC) if we do not set a value. The control plane also sets a StorageClass for any existing PVC that doesn't have astorageClassName
defined. Previous versions of Kubernetes also had this behavior; for Kubernetes v1.28 it is automatic and always active; the feature has graduated to stable.Support for CDI injection into containers: Containerized Data Importer or CDI project provides facilities for enabling Persistent Volume Claims (PVCs) to be used as disks for KubeVirt VMs by way of DataVolume. This new feature enables plugin developers to utilize the CDIDevices field added to the CRI in 1.27 to pass CDI devices directly to CDI-enabled runtimes.
Pod replacement policy for Jobs: Pod replacement is a key highlight of the K8s control plane. Planternetes allows a new feature for Job API that allows you to control whether you want to replace the pod as soon as the old pod is terminated or wait for the pod to be completely out of state.
This release includes a total of 12 enhancements promoted to Stable:
kubectl events
Retroactive default StorageClass assignment
Non-graceful node shutdown
Support 3rd party device monitoring plugins
Auth API to get self-user attributes
Proxy Terminating Endpoints
Expanded DNS Configuration
Cleaning up IPTables Chain Ownership
Minimizing iptables-restore input size
Graduate the kubelet pod resources endpoint to GA
Extend pod resources API to report allocatable resources
Move EndpointSlice Reconciler into Staging
I have listed some of the new features of the Kubernetes v1.28. Of course, there are a lot of other features too. You can check them out and learn from the official Kubernetes Documentation.