Kubernetes 1.22 was released on 4 August 2021 and removes a batch of long-deprecated beta APIs. Manifests using them fail on a 1.22 cluster.
| Removed in 1.22 | Use instead |
|---|---|
extensions/v1beta1, networking.k8s.io/v1beta1 Ingress |
networking.k8s.io/v1 |
apiextensions.k8s.io/v1beta1 CustomResourceDefinition |
apiextensions.k8s.io/v1 |
admissionregistration.k8s.io/v1beta1 webhooks |
v1 |
certificates.k8s.io/v1beta1 CSR |
v1 |
Find problems before upgrading:
kubectl get --raw /metrics | grep apiserver_requested_deprecated_apis
pluto detect-files -d ./manifests # scans YAML for deprecated apiVersions
helm mapkubeapis my-release # updates stored Helm release manifests
The new v1 Ingress needs pathType and service.name/port. Update Helm charts and operators too, since old controller versions may still create v1beta1 objects. Upgrade tools first, the cluster second.