cluster.ninja

Kubernetes minor release · “Reaching New Peaks”

Kubernetes 1.22

The first release under the new three-per-year cadence removed a large set of deprecated beta APIs, made Server-side Apply and client credential plugins GA, and introduced alpha swap support and PodSecurity admission.

End of life

End of life since 8 Dec 2022 (3.9 years ago). No more patches upstream.

Released4 Aug 2021
Maintenance mode—
End of life8 Dec 2022
Latest patch1.22.178 Dec 2022
Patch releases17
Support span16.1 months

Release team note: 1.22.17 was released in December 2022 (after the EOL date) to backport registry changes and fix two critical issues.

What 1.22 brought

change

Many deprecated beta APIs removed

Beta versions of Ingress, IngressClass, CRD, webhook configurations, APIService, Lease, TokenReview, SubjectAccessReview and CSR are gone; use their stable v1 APIs instead.

GA

Server-side Apply goes GA

The API server's field-ownership and merge mechanism for declarative updates is now generally available.

GA

External credential plugins stable

client-go credential plugins, in beta since 1.11, are now stable, with better support for interactive logins.

change

Default etcd moves to 3.5.0

The bundled etcd version is 3.5.0, bringing security, performance and monitoring improvements plus structured logging and log rotation.

alpha

Swap on nodes

Administrators can opt in to running Linux nodes with swap enabled instead of being required to turn it off.

alpha

PodSecurity admission

A new admission feature arrives in alpha as the intended successor to PodSecurityPolicy.

Summarised in our own words from the official “Kubernetes 1.22: Reaching New Peaks” announcement (53 tracked enhancements), © The Kubernetes Authors, CC BY 4.0.

APIs that stopped being served in 1.22

Upgrading to 1.22 breaks any manifest, Helm chart or client that still uses these API versions. Move them to the version in the last column before you upgrade the control plane.

KindAPI versionStops being servedUse instead
AdmissionReview admission.k8s.io/v1beta1 1.22 admission.k8s.io/v1
MutatingWebhookConfiguration admissionregistration.k8s.io/v1beta1 1.22 admissionregistration.k8s.io/v1
ValidatingWebhookConfiguration admissionregistration.k8s.io/v1beta1 1.22 admissionregistration.k8s.io/v1
ConversionReview apiextensions.k8s.io/v1beta1 1.22 apiextensions.k8s.io/v1
CustomResourceDefinition apiextensions.k8s.io/v1beta1 1.22 apiextensions.k8s.io/v1
APIService apiregistration.k8s.io/v1beta1 1.22 apiregistration.k8s.io/v1
TokenReview authentication.k8s.io/v1beta1 1.22 authentication.k8s.io/v1
LocalSubjectAccessReview authorization.k8s.io/v1beta1 1.22 authorization.k8s.io/v1
SelfSubjectAccessReview authorization.k8s.io/v1beta1 1.22 authorization.k8s.io/v1
SelfSubjectRulesReview authorization.k8s.io/v1beta1 1.22 authorization.k8s.io/v1
SubjectAccessReview authorization.k8s.io/v1beta1 1.22 authorization.k8s.io/v1
CertificateSigningRequest certificates.k8s.io/v1beta1 1.22 certificates.k8s.io/v1
Lease coordination.k8s.io/v1beta1 1.22 coordination.k8s.io/v1
Ingress extensions/v1beta1 1.22 networking.k8s.io/v1
Ingress networking.k8s.io/v1beta1 1.22 networking.k8s.io/v1
IngressClass networking.k8s.io/v1beta1 1.22 networking.k8s.io/v1
ClusterRole rbac.authorization.k8s.io/v1beta1 1.22 rbac.authorization.k8s.io/v1
ClusterRoleBinding rbac.authorization.k8s.io/v1beta1 1.22 rbac.authorization.k8s.io/v1
Role rbac.authorization.k8s.io/v1beta1 1.22 rbac.authorization.k8s.io/v1
RoleBinding rbac.authorization.k8s.io/v1beta1 1.22 rbac.authorization.k8s.io/v1
PriorityClass scheduling.k8s.io/v1beta1 1.22 scheduling.k8s.io/v1
CSIDriver storage.k8s.io/v1beta1 1.22 storage.k8s.io/v1
CSINode storage.k8s.io/v1beta1 1.22 storage.k8s.io/v1
StorageClass storage.k8s.io/v1beta1 1.22 storage.k8s.io/v1
VolumeAttachment storage.k8s.io/v1beta1 1.22 storage.k8s.io/v1

Other removals and deprecations

Removed

  • Beta Ingress APIs (extensions/v1beta1 and networking.k8s.io/v1beta1) and the beta IngressClass API are no longer served; use networking.k8s.io/v1.
  • apiextensions.k8s.io/v1beta1 CustomResourceDefinition and admissionregistration.k8s.io/v1beta1 webhook configurations are removed; use the v1 versions.
  • Beta APIService, TokenReview, SubjectAccessReview-family, CertificateSigningRequest and Lease APIs are removed in favour of their v1 versions.

Deprecated

  • The new kubeadm v1beta3 configuration API deprecates some existing options; v1beta2 remains available and is not yet deprecated.

From the release announcement; our wording.

API versions deprecated in 1.22

Still served in 1.22, but the API server answers with a deprecation warning and a removal is scheduled.

KindAPI versionStops being servedUse instead
Event events.k8s.io/v1beta1 1.25 events.k8s.io/v1
RuntimeClass node.k8s.io/v1beta1 1.25 node.k8s.io/v1
Eviction policy/v1beta1 1.25 policy/v1

Stable (GA) API kinds new in 1.22

Eviction policy/v1

Upgrading

Version skew with a 1.22 API server

  • kubelet, kube-proxy: 1.20 to 1.22
  • kube-controller-manager, scheduler: 1.21 to 1.22
  • kubectl: 1.21 to 1.23

From the official version skew policy as it stands today.

One minor at a time

The API server must not skip minor versions.

Patch releases

18 releases, newest first
  1. 1.22.178 Dec 2022
  2. 1.22.1610 Nov 2022
  3. 1.22.1521 Sep 2022
  4. 1.22.1415 Sep 2022
  5. 1.22.1317 Aug 2022
  6. 1.22.1213 Jul 2022
  7. 1.22.1116 Jun 2022
  8. 1.22.1025 May 2022
  9. 1.22.920 Apr 2022
  10. 1.22.816 Mar 2022
  11. 1.22.717 Feb 2022
  12. 1.22.619 Jan 2022
  13. 1.22.516 Dec 2021
  14. 1.22.417 Nov 2021
  15. 1.22.328 Oct 2021
  16. 1.22.215 Sep 2021
  17. 1.22.119 Aug 2021
  18. 1.22.04 Aug 2021