This article is more than one year old. Older articles may contain outdated content. Check that the information in the page has not become incorrect since its publication.
Kubernetes 1.24: Stargazer
We are excited to announce the release of Kubernetes 1.24, the first release of 2022!
This release consists of 46 enhancements: fourteen enhancements have graduated to stable, fifteen enhancements are moving to beta, and thirteen enhancements are entering alpha. Also, two features have been deprecated, and two features have been removed.
Major Themes
Dockershim Removed from kubelet
After its deprecation in v1.20, the dockershim component has been removed from the kubelet in Kubernetes v1.24. From v1.24 onwards, you will need to either use one of the other supported runtimes (such as containerd or CRI-O) or use cri-dockerd if you are relying on Docker Engine as your container runtime. For more information about ensuring your cluster is ready for this removal, please see this guide.
Beta APIs Off by Default
New beta APIs will not be enabled in clusters by default. Existing beta APIs and new versions of existing beta APIs will continue to be enabled by default.
Signing Release Artifacts
Release artifacts are signed using cosign signatures, and there is experimental support for verifying image signatures. Signing and verification of release artifacts is part of increasing software supply chain security for the Kubernetes release process.
OpenAPI v3
Kubernetes 1.24 offers beta support for publishing its APIs in the OpenAPI v3 format.
Storage Capacity and Volume Expansion Are Generally Available
Storage capacity tracking supports exposing currently available storage capacity via CSIStorageCapacity objects and enhances scheduling of pods that use CSI volumes with late binding.
Volume expansion adds support for resizing existing persistent volumes.
NonPreemptingPriority to Stable
This feature adds a new option to PriorityClasses, which can enable or disable pod preemption.
Storage Plugin Migration
Work is underway to migrate the internals of in-tree storage plugins to call out to CSI Plugins while maintaining the original API. The Azure Disk and OpenStack Cinder plugins have both been migrated.
gRPC Probes Graduate to Beta
With Kubernetes 1.24, the gRPC probes functionality has entered beta and is available by default. You can now configure startup, liveness, and readiness probes for your gRPC app natively within Kubernetes without exposing an HTTP endpoint or using an extra executable.
Kubelet Credential Provider Graduates to Beta
Originally released as Alpha in Kubernetes 1.20, the kubelet's support for image credential providers has now graduated to Beta. This allows the kubelet to dynamically retrieve credentials for a container image registry using exec plugins rather than storing credentials on the node's filesystem.
Contextual Logging in Alpha
Kubernetes 1.24 has introduced contextual logging that enables the caller of a function to control all aspects of logging (output formatting, verbosity, additional values, and names).
Avoiding Collisions in IP allocation to Services
Kubernetes 1.24 introduces a new opt-in feature that allows you to soft-reserve a range for static IP address assignments to Services. With the manual enablement of this feature, the cluster will prefer automatic assignment from the pool of Service IP addresses, thereby reducing the risk of collision.
A Service ClusterIP
can be assigned:
- dynamically, which means the cluster will automatically pick a free IP within the configured Service IP range.
- statically, which means the user will set one IP within the configured Service IP range.
Service ClusterIP
are unique; hence, trying to create a Service with a ClusterIP
that has already been allocated will return an error.
Dynamic Kubelet Configuration is Removed from the Kubelet
After being deprecated in Kubernetes 1.22, Dynamic Kubelet Configuration has been removed from the kubelet. The feature will be removed from the API server in Kubernetes 1.26.
CNI Version-Related Breaking Change
Before you upgrade to Kubernetes 1.24, please verify that you are using/upgrading to a container runtime that has been tested to work correctly with this release.
For example, the following container runtimes are being prepared, or have already been prepared, for Kubernetes:
- containerd v1.6.4 and later, v1.5.11 and later
- CRI-O 1.24 and later
Service issues exist for pod CNI network setup and tear down in containerd v1.6.0–v1.6.3 when the CNI plugins have not been upgraded and/or the CNI config version is not declared in the CNI config files. The containerd team reports, "these issues are resolved in containerd v1.6.4."
With containerd v1.6.0–v1.6.3, if you do not upgrade the CNI plugins and/or declare the CNI config version, you might encounter the following "Incompatible CNI versions" or "Failed to destroy network for sandbox" error conditions.
CSI Snapshot
This information was added after initial publication.
VolumeSnapshot v1beta1 CRD has been removed. Volume snapshot and restore functionality for Kubernetes and the Container Storage Interface (CSI), which provides standardized APIs design (CRDs) and adds PV snapshot/restore support for CSI volume drivers, moved to GA in v1.20. VolumeSnapshot v1beta1 was deprecated in v1.20 and is now unsupported. Refer to KEP-177: CSI Snapshot and Volume Snapshot GA blog for more information.
Other Updates
Graduations to Stable
This release saw fourteen enhancements promoted to stable:
- Container Storage Interface (CSI) Volume Expansion
- Pod Overhead: Account for resources tied to the pod sandbox but not specific containers.
- Add non-preempting option to PriorityClasses
- Storage Capacity Tracking
- OpenStack Cinder In-Tree to CSI Driver Migration
- Azure Disk In-Tree to CSI Driver Migration
- Efficient Watch Resumption: Watch can be efficiently resumed after kube-apiserver reboot.
- Service Type=LoadBalancer Class Field: Introduce a new Service annotation
service.kubernetes.io/load-balancer-class
that allows multiple implementations oftype: LoadBalancer
Services in the same cluster. - Indexed Job: Add a completion index to Pods of Jobs with a fixed completion count.
- Add Suspend Field to Jobs API: Add a suspend field to the Jobs API to allow orchestrators to create jobs with more control over when pods are created.
- Pod Affinity NamespaceSelector: Add a
namespaceSelector
field for to pod affinity/anti-affinity spec. - Leader Migration for Controller Managers: kube-controller-manager and cloud-controller-manager can apply new controller-to-controller-manager assignment in HA control plane without downtime.
- CSR Duration: Extend the CertificateSigningRequest API with a mechanism to allow clients to request a specific duration for the issued certificate.
Major Changes
This release saw two major changes:
Release Notes
Check out the full details of the Kubernetes 1.24 release in our release notes.
Availability
Kubernetes 1.24 is available for download on GitHub. To get started with Kubernetes, check out these interactive tutorials or run local Kubernetes clusters using containers as “nodes”, with kind. You can also easily install 1.24 using kubeadm.
Release Team
This release would not have been possible without the combined efforts of committed individuals comprising the Kubernetes 1.24 release team. This team came together to deliver all of the components that go into each Kubernetes release, including code, documentation, release notes, and more.
Special thanks to James Laverack, our release lead, for guiding us through a successful release cycle, and to all of the release team members for the time and effort they put in to deliver the v1.24 release for the Kubernetes community.
Release Theme and Logo
Kubernetes 1.24: Stargazer
The theme for Kubernetes 1.24 is Stargazer.
Generations of people have looked to the stars in awe and wonder, from ancient astronomers to the scientists who built the James Webb Space Telescope. The stars have inspired us, set our imagination alight, and guided us through long nights on difficult seas.
With this release we gaze upwards, to what is possible when our community comes together. Kubernetes is the work of hundreds of contributors across the globe and thousands of end-users supporting applications that serve millions. Every one is a star in our sky, helping us chart our course.
The release logo is made by Britnee Laverack, and depicts a telescope set upon starry skies and the Pleiades, often known in mythology as the “Seven Sisters”. The number seven is especially auspicious for the Kubernetes project, and is a reference back to our original “Project Seven” name.
This release of Kubernetes is named for those that would look towards the night sky and wonder — for all the stargazers out there. ✨
User Highlights
- Check out how leading retail e-commerce company La Redoute used Kubernetes, alongside other CNCF projects, to transform and streamline its software delivery lifecycle - from development to operations.
- Trying to ensure no change to an API call would cause any breaks, Salt Security built its microservices entirely on Kubernetes, and it communicates via gRPC while Linkerd ensures messages are encrypted.
- In their effort to migrate from private to public cloud, Allainz Direct engineers redesigned its CI/CD pipeline in just three months while managing to condense 200 workflows down to 10-15.
- Check out how Bink, a UK based fintech company, updated its in-house Kubernetes distribution with Linkerd to build a cloud-agnostic platform that scales as needed whilst allowing them to keep a close eye on performance and stability.
- Using Kubernetes, the Dutch organization Stichting Open Nederland created a testing portal in just one-and-a-half months to help safely reopen events in the Netherlands. The Testing for Entry (Testen voor Toegang) platform leveraged the performance and scalability of Kubernetes to help individuals book over 400,000 COVID-19 testing appointments per day.
- Working alongside SparkFabrik and utilizing Backstage, Santagostino created the developer platform Samaritan to centralize services and documentation, manage the entire lifecycle of services, and simplify the work of Santagostino developers.
Ecosystem Updates
- KubeCon + CloudNativeCon Europe 2022 will take place in Valencia, Spain, from 16 – 20 May 2022! You can find more information about the conference and registration on the event site.
- In the 2021 Cloud Native Survey, the CNCF saw record Kubernetes and container adoption. Take a look at the results of the survey.
- The Linux Foundation and The Cloud Native Computing Foundation (CNCF) announced the availability of a new Cloud Native Developer Bootcamp to provide participants with the knowledge and skills to design, build, and deploy cloud native applications. Check out the announcement to learn more.
Project Velocity
The CNCF K8s DevStats project aggregates a number of interesting data points related to the velocity of Kubernetes and various sub-projects. This includes everything from individual contributions to the number of companies that are contributing, and is an illustration of the depth and breadth of effort that goes into evolving this ecosystem.
In the v1.24 release cycle, which ran for 17 weeks (January 10 to May 3), we saw contributions from 1029 companies and 1179 individuals.
Upcoming Release Webinar
Join members of the Kubernetes 1.24 release team on Tue May 24, 2022 9:45am – 11am PT to learn about the major features of this release, as well as deprecations and removals to help plan for upgrades. For more information and registration, visit the event page on the CNCF Online Programs site.
Get Involved
The simplest way to get involved with Kubernetes is by joining one of the many Special Interest Groups (SIGs) that align with your interests. Have something you’d like to broadcast to the Kubernetes community? Share your voice at our weekly community meeting, and through the channels below:
- Find out more about contributing to Kubernetes at the Kubernetes Contributors website
- Follow us on Twitter @Kubernetesio for the latest updates
- Join the community discussion on Discuss
- Join the community on Slack
- Post questions (or answer questions) on Server Fault.
- Share your Kubernetes story
- Read more about what’s happening with Kubernetes on the blog
- Learn more about the Kubernetes Release Team