Kubernetes 1.23: The Next Frontier
We’re pleased to announce the release of Kubernetes 1.23, the last release of 2021!
This release consists of 47 enhancements: 11 enhancements have graduated to stable, 17 enhancements are moving to beta, and 19 enhancements are entering alpha. Also, 1 feature has been deprecated.
Major Themes
Deprecation of FlexVolume
FlexVolume is deprecated. The out-of-tree CSI driver is the recommended way to write volume drivers in Kubernetes. See
To simplify the code base, several
Kubernetes releases now generate provenance attestation files describing the staging and release phases of the release process. Artifacts are now verified as they are handed over from one phase to the next. This final piece completes the work needed to comply with Level 1 of the
The HorizontalPodAutscaler The generic ephemeral volume feature moved to GA in 1.23. This feature allows any existing storage driver that supports dynamic provisioning to be used as an ephemeral volume with the volume’s lifecycle bound to the Pod. All StorageClass parameters for volume provisioning and all features supported with PersistentVolumeClaims are supported. The feature to configure volume permission and ownership change policy for Pods moved to GA in 1.23. This allows users to skip recursive permission changes on mount and speeds up the pod start up time. The feature to allow CSI Drivers to declare support for fsGroup based permissions graduates to GA in 1.23.
The Kubelet now supports the CRI Structured logging reached its Beta milestone. Most log messages from kubelet and kube-scheduler have been converted. Users are encouraged to try out JSON output or parsing of the structured text format and provide feedback on possible solutions for the open issues, such as handling of multi-line strings in log values. The kube-scheduler is adding a new, simplified config field for Plugins to allow multiple extension points to be enabled in one spot. The new CSI Migration enables the replacement of existing in-tree storage plugins such as Expression language validation for CRD is in alpha starting in 1.23. If the If the With the feature gate enabled, we also introduce the If the Check out the full details of the Kubernetes 1.23 release in our . Kubernetes 1.23 is available for download on kubeadm. 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. A huge thank you to the release lead Rey Lejano 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.23 release for the community. Kubernetes 1.23: The Next Frontier "The Next Frontier" theme represents the new and graduated enhancements in 1.23, Kubernetes' history of Star Trek references, and the growth of community members in the release team. Kubernetes has a history of Star Trek references. The original codename for Kubernetes within Google is Project 7, a reference to Seven of Nine from Star Trek Voyager. And of course Borg was the name for the predecessor to Kubernetes. "The Next Frontier" theme continues the Star Trek references. "The Next Frontier" is a fusion of two Star Trek titles, Star Trek V: The Final Frontier and Star Trek the Next Generation. "The Next Frontier" represents a line in the SIG Release charter, "Ensure there is a consistent group of community members in place to support the release process across time." With each release team, we grow the community with new release team members and for many it's their first contribution in their open source frontier. Reference: https://kubernetes.io/blog/2015/04/borg-predecessor-to-kubernetes/
Reference:
The Kubernetes 1.23 release logo continues with the theme's Star Trek reference. Every star is a helm from the Kubernetes logo. The ship represents the collective teamwork of the release team. Rey Lejano designed the logo. 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.23 release cycle, which ran for 16 weeks (August 23 to December 7), we saw contributions from 1032 companies and 1084 individuals. Join members of the Kubernetes 1.23 release team on January 4, 2022 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
The simplest way to get involved with Kubernetes is by joining one of the many
Deprecation of klog specific flags
Software Supply Chain SLSA Level 1 Compliance in the Kubernetes Release Process
IPv4/IPv6 Dual-stack Networking graduates to GA
HorizontalPodAutoscaler v2 graduates to GA
autoscaling/v2
stable API moved to GA in 1.23. The HorizontalPodAutoscaler autoscaling/v2beta2
API has been deprecated.Generic Ephemeral Volume feature graduates to GA
Skip Volume Ownership change graduates to GA
Allow CSI drivers to opt-in to volume ownership and permission change graduates to GA
PodSecurity graduates to Beta
Container Runtime Interface (CRI) v1 is default
v1
API, which is now the project-wide default.
If a container runtime does not support the v1
API, Kubernetes will fall back to the v1alpha2
implementation. There is no intermediate action required by end-users, because v1
and v1alpha2
do not differ in their implementation. It is likely that v1alpha2
will be removed in one of the future Kubernetes releases to be able to develop v1
.Structured logging graduate to Beta
Simplified Multi-point plugin configuration for scheduler
multiPoint
plugin field is intended to simplify most scheduler setups for administrators. Plugins that are enabled via multiPoint
will automatically be registered for each individual extension point that they implement. For example, a plugin that implements Score and Filter extensions can be simultaneously enabled for both. This means entire plugins can be enabled and disabled without having to manually edit individual extension point settings. These extension points can now be abstracted away due to their irrelevance for most users.CSI Migration updates
kubernetes.io/gce-pd
or kubernetes.io/aws-ebs
with a corresponding CSI driver.
If CSI Migration is working properly, Kubernetes end users shouldn’t notice a difference.
After migration, Kubernetes users may continue to rely on all the functionality of in-tree storage plugins using the existing interface.
Expression language validation for CRD is alpha
CustomResourceValidationExpressions
feature gate is enabled, custom resources will be validated by validation rules using the .Server Side Field Validation is Alpha
ServerSideFieldValidation
feature gate is enabled starting 1.23, users will receive warnings from the server when they send Kubernetes objects in the request that contain unknown or duplicate fields. Previously unknown fields and all but the last duplicate fields would be dropped by the server.fieldValidation
query parameter so that users can specify the desired behavior of the server on a per request basis. Valid values for the fieldValidation
query parameter are:
OpenAPI v3 is Alpha
OpenAPIV3
feature gate is enabled starting 1.23, users will be able to request the OpenAPI v3.0 spec for all Kubernetes types. OpenAPI v3 aims to be fully transparent and includes support for a set of fields that are dropped when publishing OpenAPI v2: default
, nullable
, oneOf
, anyOf
. A separate spec is published per Kubernetes group version (at the $cluster/openapi/v3/apis/<group>/<version>
endpoint) for improved performance and discovery, for all group versions can be found at the $cluster/openapi/v3
path.Other Updates
Graduated to Stable
Major Changes
Release Notes
Availability
Release Team
Release Theme and Logo
User Highlights
Ecosystem Updates
Project Velocity
Event Update
Upcoming Release Webinar
Get Involved