Update 2022-4-26-kubernetes-release-1.24.md
Added additional major themes (more changes to this section are expected) along with user highlights.pull/32867/head
parent
fb6ca178f9
commit
ed421d6cb2
|
@ -7,65 +7,85 @@ slug: kubernetes-1-24-release-announcement
|
||||||
|
|
||||||
# Kubernetes 1.24
|
# Kubernetes 1.24
|
||||||
|
|
||||||
**Authors**: [Kubernetes 1.24 Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.24/release-team.md): Mickey Boxell (Oracle), Kat Cosgrove (Pulumi), Debabrata Panigrahi, Parthvi Vala (Red Hat)
|
**Authors**: [Kubernetes 1.24 Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.24/release-team.md)
|
||||||
|
|
||||||
We are excited to announce the release of Kubernetes 1.24, the first release of 2022!
|
We are excited to announce the release of Kubernetes 1.24, the first release of 2022!
|
||||||
|
|
||||||
This release consists of 46 enhancements: fifteen enhancements have graduated to stable, fifteen enhancements are moving to beta, and thirteen enhancements are entering alpha. Also, two features have been deprecated, and the [dockershim has been removed](https://kubernetes.io/blog/2022/02/17/dockershim-faq/).
|
This release consists of 46 enhancements: fifteen enhancements have graduated to stable, fifteen enhancements are moving to beta, and thirteen enhancements are entering alpha. Also, two features have been deprecated, and the [dockershim has been removed](https://kubernetes.io/blog/2022/02/17/dockershim-faq/).
|
||||||
|
|
||||||
|
|
||||||
## Major Themes
|
## Major Themes
|
||||||
|
|
||||||
### Dockershim Removed from kubelet
|
### Dockershim Removed from kubelet
|
||||||
After an initial deprecation in v1.20, the dockershim has been removed from the kubelet in favor of runtimes that comply with the Container Runtime Interface (CRI) designed for Kubernetes. From v1.24 and up, if you are currently relying on Docker Engine as your container runtime, you will need to either use one of the other supported runtimes (such as containerd or CRI-O) or use cri-dockerd. For more information about ensuring your cluster is ready for this removal, please see [this guide](/blog/2022/03/31/ready-for-dockershim-removal/).
|
After an initial deprecation in v1.20, the dockershim has been removed from the kubelet in favor of runtimes that comply with the Container Runtime Interface (CRI) designed for Kubernetes. From v1.24 and up, if you are currently relying on Docker Engine as your container runtime, you will need to either use one of the other supported runtimes (such as containerd or CRI-O) or use cri-dockerd. For more information about ensuring your cluster is ready for this removal, please see [this guide](/blog/2022/03/31/ready-for-dockershim-removal/).
|
||||||
|
|
||||||
|
### CNI Version-Related Breaking Change
|
||||||
|
Before you upgrade to Kubernetes 1.24, if you use a [Container Network Interface (CNI)](https://github.com/containernetworking/cni) network plugin that complies with CNI versions earlier than v1.0.0 and you plan to use any of the following container runtimes, you must specify the CNI version as described in [Declaring the CNI version of your plugin](TBD). Otherwise, your network will break.
|
||||||
|
|
||||||
|
This issue applies to the following container runtimes:
|
||||||
|
* containerd v1.6.0 and later
|
||||||
|
* CRI-O 1.24 and later
|
||||||
|
* cri-dockerd [vTBD] and later
|
||||||
|
|
||||||
|
### Beta APIs Off by Default
|
||||||
|
[New beta APIs will not be enabled in clusters by default](https://github.com/kubernetes/enhancements/issues/3136). Existing beta APIs and new versions of existing beta APIs, will continue to be enabled by default.
|
||||||
|
|
||||||
|
### OpenAPI v3
|
||||||
|
Kubernetes 1.24 offers beta support for publishing its APIs as [OpenAPI v3](https://github.com/kubernetes/enhancements/issues/2896).
|
||||||
|
|
||||||
|
### Signing Release Artifacts
|
||||||
|
[Release artifacts are signed](https://github.com/kubernetes/enhancements/issues/3031).
|
||||||
|
|
||||||
|
### Storage Capacity and Volume Expansion Are Generally Available
|
||||||
|
[Storage capacity tracking](https://github.com/kubernetes/enhancements/issues/1472) supports exposing currently available storage capacity via CSIStorageCapacity objects and enhances scheduling of pods that use CSI volumes with late binding.
|
||||||
|
|
||||||
|
[Volume expansion](https://github.com/kubernetes/enhancements/issues/284) add support for resizing existing persistent volumes.
|
||||||
|
|
||||||
|
### NonPreemptingPriority to Stable
|
||||||
|
This feature adds [a new option to PriorityClasses](https://github.com/kubernetes/enhancements/issues/902), which can enable or disable pod preemption.
|
||||||
|
|
||||||
|
### In-Tree CSI Providers
|
||||||
|
[Migrate the internals of the in-tree plugins](https://github.com/kubernetes/enhancements/issues/625) to call out to CSI Plugins while maintaining the original API. [Azure Disk](https://github.com/kubernetes/enhancements/issues/1490) and [OpenStack Cinder](https://github.com/kubernetes/enhancements/issues/1489) have both been migrated.
|
||||||
|
|
||||||
### Graduations to Stable
|
### Graduations to Stable
|
||||||
This release saw fifteen enhancements promoted to stable.
|
This release saw fifteen enhancements promoted to stable:
|
||||||
|
|
||||||
* [CSI Volume Expansion](https://github.com/kubernetes/enhancements/issues/284)
|
* [Container Storage Interface (CSI) Volume Expansion](https://github.com/kubernetes/enhancements/issues/284)
|
||||||
* [PodOverhead](https://github.com/kubernetes/enhancements/issues/688)
|
* [PodOverhead](https://github.com/kubernetes/enhancements/issues/688): Account for resources tied to the pod sandbox, but not specific containers.
|
||||||
* [Non-preempting Priority to GA](https://github.com/kubernetes/enhancements/issues/596)
|
* [Add non-preempting option to PriorityClasses](https://github.com/kubernetes/enhancements/issues/902)
|
||||||
* [Storage Capacity Tracking](https://github.com/kubernetes/enhancements/issues/1472)
|
* [Storage Capacity Tracking](https://github.com/kubernetes/enhancements/issues/1472)
|
||||||
* [Azure disk in-tree to CSI driver migration](https://github.com/kubernetes/enhancements/issues/1489)
|
* [OpenStack Cinder In-Tree to CSI Driver Migration](https://github.com/kubernetes/enhancements/issues/1489)
|
||||||
* [OpenStack in-tree to CSI driver migration](https://github.com/kubernetes/enhancements/issues/1490)
|
* [Azure Disk In-Tree to CSI Driver Migration](https://github.com/kubernetes/enhancements/issues/1490)
|
||||||
* [Efficient Watch Resumption](https://github.com/kubernetes/enhancements/issues/1904)
|
* [Efficient Watch Resumption](https://github.com/kubernetes/enhancements/issues/1904): Watch can be efficiently resumed after kube-apiserver reboot.
|
||||||
* [Service Type=LoadBalancer class](https://github.com/kubernetes/enhancements/issues/1959)
|
* [Service Type=LoadBalancer Class](https://github.com/kubernetes/enhancements/issues/1959): Introduce a new Service annotation `service.kubernetes.io/load-balancer-class` that allows multiple implementations of Service Type=LoadBalancer in a cluster.
|
||||||
* [Indexed Job Semantics in Jobs ABI](https://github.com/kubernetes/enhancements/issues/2232)
|
* [Indexed Job Semantics in Job API](https://github.com/kubernetes/enhancements/issues/2214): Add a completion index to Pods of Jobs with fixed completion count.
|
||||||
* [batch/v1: add suspend field to Jobs API](https://github.com/kubernetes/enhancements/issues/2232)
|
* [batch/v1: Add Suspend Field to Jobs API](https://github.com/kubernetes/enhancements/issues/2232): 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 to GA](https://github.com/kubernetes/enhancements/issues/2249)
|
* [Pod Affinity NamespaceSelector](https://github.com/kubernetes/enhancements/issues/2249): Adds namespaceSelector to pod affinity/anti-affinity spec.
|
||||||
* [Leader Migration to GA](https://github.com/kubernetes/enhancements/issues/2436)
|
* [Leader Migration for Controller Managers](https://github.com/kubernetes/enhancements/issues/2436): kube-controller-manager and cloud-controller-manager can apply new controller-to-controller-manager assignment in HA control plane without downtime.
|
||||||
* [CSR Duration](https://github.com/kubernetes/enhancements/issues/2784)
|
* [CSR Duration](https://github.com/kubernetes/enhancements/issues/2784): Extend the Certificates API with a mechanism to allow clients to request a specific duration for the issued certificate.
|
||||||
* [Beta APIs are off by Default](https://github.com/kubernetes/enhancements/issues/3136)
|
* [Beta APIs are off by Default](https://github.com/kubernetes/enhancements/issues/3136)
|
||||||
* [Dockershim Removal](https://github.com/kubernetes/enhancements/issues/2221)
|
* [Dockershim Removal](https://github.com/kubernetes/enhancements/issues/2221)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### gRPC Probes Graduate to Beta
|
### gRPC Probes Graduate to Beta
|
||||||
With Kubernetes 1.24, the gRPC probes functionality has entered beta and is available by default.
|
With Kubernetes 1.24, the [gRPC probes functionality](https://github.com/kubernetes/enhancements/issues/2727) has entered beta and is available by default. You can now [configure startup, liveness, and readiness probes](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes) for your gRPC app natively within Kubernetes, without exposing an HTTP endpoint or
|
||||||
|
|
||||||
You can now [configure startup, liveness, and readiness probes](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes)
|
|
||||||
for your gRPC app natively within Kubernetes, without exposing an HTTP endpoint or
|
|
||||||
using an extra executable.
|
using an extra executable.
|
||||||
|
|
||||||
### Kubelet Credential Provider graduates to Beta
|
### Kubelet Credential Provider graduates to Beta
|
||||||
Released as Alpha in Kubernetes v1.20, the Kubelet Credential Provider has now graduated to Beta. This allows the kubelet to dynamically retrieve credentials for a container image registry using exec plugins, communicating through stdio using Kubernetes versioned APIs, rather than storing them statically on disk.
|
Released as Alpha in Kubernetes 1.20, the [Kubelet Credential Provider](https://github.com/kubernetes/enhancements/issues/2133) has now graduated to Beta. This allows the kubelet to dynamically retrieve credentials for a container image registry using exec plugins, communicating through stdio using Kubernetes versioned APIs, rather than storing them statically on disk.
|
||||||
|
|
||||||
### Contextual Logging in Alpha
|
### Contextual Logging in Alpha
|
||||||
Kubernetes v1.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).
|
Kubernetes v1.24 has introduced [contextual logging](https://github.com/kubernetes/enhancements/issues/3077) 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
|
### Avoiding Collisions in IP allocation to Services
|
||||||
|
Kubernetes 1.24 introduces a new Feature Gate `ServiceIPStaticSubrange` that allows users to [soft-reserve a range for static IP address assignments](https://github.com/kubernetes/enhancements/issues/3070). If you use the new feature (which you must manually enable), your cluster prefers automatic assignment from the remaining pool of Service IP addresses, reducing the risk of a collision.
|
||||||
|
|
||||||
|
|
||||||
A Service `ClusterIP` can be assigned:
|
A Service `ClusterIP` can be assigned:
|
||||||
|
|
||||||
* dynamically, the cluster will automatically pick a free one within the configured Service IP range.
|
* dynamically, which means the cluster will automatically pick a free IP within the configured Service IP range.
|
||||||
* statically, the user will set one 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.
|
Service `ClusterIP` are unique, hence, trying to create a Service with a `ClusterIP` that has already been allocated will return an error.
|
||||||
|
|
||||||
Kubernetes 1.24 introduces a new way to soft-reserve a range for static IP address assignments
|
|
||||||
to Services. If you use the new feature (which you must manually enable), your cluster prefers
|
|
||||||
automatic assignment from the remaining pool of Service IP addresses, reducing the risk of a
|
|
||||||
collision.
|
|
||||||
|
|
||||||
|
|
||||||
## Other Updates
|
## Other Updates
|
||||||
### Graduated to Stable
|
### Graduated to Stable
|
||||||
|
@ -86,18 +106,21 @@ You can also easily install 1.24 using [kubeadm](/docs/setup/independent/create-
|
||||||
|
|
||||||
### Release Team
|
### Release Team
|
||||||
|
|
||||||
This release was made possible by a very dedicated group of individuals, who came together as a team to deliver technical content, documentation, code, and a host of other components that go into every Kubernetes release.
|
This release would not have been possible without the combined efforts of a 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.
|
||||||
|
|
||||||
A huge thank you to the release lead James Laverack for leading us through a successful release cycle, and to everyone else on the release team for supporting each other, and working so hard to deliver the 1.24 release for the community.
|
Special thanks to James Laverack, our release lead, for guiding us through a successful release cycle, and to all of the members of the release team for the time and effort they put in to deliver the v1.24 release for the Kubernetes community.
|
||||||
|
|
||||||
### Release Theme and Logo
|
### Release Theme and Logo
|
||||||
|
|
||||||
**Kubernetes 1.24:**
|
**Kubernetes 1.24: Stargazer**
|
||||||
|
|
||||||
|
|
||||||
### User Highlights
|
### User Highlights
|
||||||
* As the Netherlands emerged from the first pandemic lockdown in Spring 2021, people needed a way of proving their COVID-19 test result status to enter events. Using Kubernetes, the Dutch organization [Stichting Open Nederland](http://www.stichtingopennederland.nl/) 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)](https://www.testenvoortoegang.org/) platform leverged the performance and scalability of Kubernetes to help individuals book COVID-19 test appointments, enabling them to once again attend cultural, social, and sports events.
|
* Check out how leading retail e-commerce company [La Redoute used Kubernetes, alongside other CNCF projects, to transform and streamline its software delivery lifecycle](https://www.cncf.io/case-studies/la-redoute/) - 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](https://www.cncf.io/case-studies/salt-security/).
|
||||||
|
* 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](https://www.cncf.io/case-studies/allianz/) .
|
||||||
|
* Check out how [Bink, a UK based fintech company, updated its in-house Kubernetes distribtion with Linkerd to build a cloud-agnostic platform that scales as needed whilst allowing them to keep a close eye on performance and stability](https://www.cncf.io/case-studies/bink/).
|
||||||
|
* Using Kubernetes, the Dutch organization [Stichting Open Nederland](http://www.stichtingopennederland.nl/) 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)](https://www.testenvoortoegang.org/) platform [leverged the performance and scalability of Kubernetes to help individuals book over 400,000 COVID-19 testing appointments per day. ](https://www.cncf.io/case-studies/true/)
|
||||||
|
* 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](https://www.cncf.io/case-studies/santagostino/).
|
||||||
|
|
||||||
### Ecosystem Updates
|
### Ecosystem Updates
|
||||||
|
|
||||||
|
@ -111,7 +134,6 @@ The [CNCF K8s DevStats](https://k8s.devstats.cncf.io/d/12/dashboards?orgId=1&ref
|
||||||
|
|
||||||
In the v1.24 release cycle, which [ran for 18 weeks](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.24) (January 10 to May 17), we saw contributions from [1029 companies](https://k8s.devstats.cncf.io/d/9/companies-table?orgId=1&var-period_name=v1.23.0%20-%20now&var-metric=contributions) and [1179 individuals](https://k8s.devstats.cncf.io/d/66/developer-activity-counts-by-companies?orgId=1&var-period_name=v1.23.0%20-%20now&var-metric=contributions&var-repogroup_name=Kubernetes&var-country_name=All&var-companies=All&var-repo_name=kubernetes%2Fkubernetes).
|
In the v1.24 release cycle, which [ran for 18 weeks](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.24) (January 10 to May 17), we saw contributions from [1029 companies](https://k8s.devstats.cncf.io/d/9/companies-table?orgId=1&var-period_name=v1.23.0%20-%20now&var-metric=contributions) and [1179 individuals](https://k8s.devstats.cncf.io/d/66/developer-activity-counts-by-companies?orgId=1&var-period_name=v1.23.0%20-%20now&var-metric=contributions&var-repogroup_name=Kubernetes&var-country_name=All&var-companies=All&var-repo_name=kubernetes%2Fkubernetes).
|
||||||
|
|
||||||
|
|
||||||
## Upcoming Release Webinar
|
## Upcoming Release Webinar
|
||||||
Join members of the Kubernetes 1.24 release team on <date> 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.
|
Join members of the Kubernetes 1.24 release team on <date> 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.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue