Kubernetes 1.22 came out in August 2021, and the big news is the removal of deprecated beta API versions that had been around since Kubernetes 1.16. This change broke automation that hadn't been updated, causing a significant upgrade headache for many clusters.

The removed APIs include Ingress v1beta1, which moved to v1, RBAC v1beta1, CRD v1beta1, and a dozen others that had been deprecated for two to three years. There were documented migration paths, but many organisations hadn't migrated their manifests, Helm charts, and automation scripts.

In my experience, organisations often underestimate the effort required to update their tooling and automation. For example, I worked with a team that had over 500 Helm charts, and updating each one to use the new API versions took several months. They had to use tools like kubectl convert to update their manifests and Helm's built-in support for API version conversion.

The practical problem with Kubernetes API deprecations is that client-side tooling like Helm charts, ArgoCD app definitions, and Terraform manifests are often managed by vendors, third-party projects, and upstream teams, not the cluster operator. When a cluster operator upgraded to 1.22, they found that community Helm charts, operators, and monitoring stacks they hadn't modified were using deprecated API versions.

Kubernetes 1.22 also moved ephemeral containers to beta. This feature lets you attach a debug container to a running pod, enabling interactive debugging of production workloads without restarting the pod or adding debug tools to the production image. This is particularly useful for production distroless images that have no shell.

I've seen ephemeral containers used effectively in production environments where security and minimalism are critical. For instance, a team I worked with used distroless images for their microservices, and debugging issues was a challenge. With ephemeral containers, they could attach a debug container to the pod and use tools like curl or wget to troubleshoot issues without modifying the production image.

Cluster Autoscaler and Vertical Pod Autoscaler matured through 2021. For right-sizing workloads in Kubernetes, the patterns are to use Horizontal Pod Autoscaler for stateless workloads with CPU/memory metrics or custom metrics, Vertical Pod Autoscaler in recommendation mode to understand actual resource usage versus requested, and Cluster Autoscaler to add and remove nodes as the aggregate pod resource requests change.

Organisations had been warned about the deprecations for years, but many hadn't updated their tooling. This caused significant disruption when upgrading to 1.22.

The removal of deprecated APIs and the introduction of new features like ephemeral containers show how Kubernetes continues to evolve. Clusters need to stay up to date to take advantage of the latest features and improvements.