Kubernetes 1.16 removed APIs
Kubernetes 1.16 stopped serving the extensions and apps beta versions of the workload APIs: Deployment, DaemonSet, StatefulSet and ReplicaSet, along with NetworkPolicy and PodSecurityPolicy in extensions/v1beta1. The apps/v1 replacements arrived in 1.9, and in apps/v1 every workload needs an explicit selector.
Every replacement below was available by 1.10, so clusters could migrate before upgrading.
Check a manifest against 1.16.
Removed in 1.16
The API server no longer serves these from 1.16. Each kind links to its migration steps.
| Kind | Removed version | Migrate to | Available since |
|---|---|---|---|
| ControllerRevision | apps/v1beta1 | apps/v1 | 1.9 |
| ControllerRevision | apps/v1beta2 | apps/v1 | 1.9 |
| DaemonSet | extensions/v1beta1 | apps/v1 | 1.9 |
| DaemonSet | apps/v1beta2 | apps/v1 | 1.9 |
| Deployment | extensions/v1beta1 | apps/v1 | 1.9 |
| Deployment | apps/v1beta1 | apps/v1 | 1.9 |
| Deployment | apps/v1beta2 | apps/v1 | 1.9 |
| NetworkPolicy | extensions/v1beta1 | networking.k8s.io/v1 | 1.7 |
| PodSecurityPolicy | extensions/v1beta1 | policy/v1beta1 | 1.10 |
| ReplicaSet | extensions/v1beta1 | apps/v1 | 1.9 |
| ReplicaSet | apps/v1beta1 | apps/v1 | 1.9 |
| ReplicaSet | apps/v1beta2 | apps/v1 | 1.9 |
| StatefulSet | apps/v1beta1 | apps/v1 | 1.9 |
| StatefulSet | apps/v1beta2 | apps/v1 | 1.9 |
Deprecated in 1.16
These still work in 1.16. Each kind links to its migration steps.
- CustomResourceDefinition
apiextensions.k8s.io/v1beta1: removed in 1.22 - MutatingWebhookConfiguration
admissionregistration.k8s.io/v1beta1: removed in 1.22 - ValidatingWebhookConfiguration
admissionregistration.k8s.io/v1beta1: removed in 1.22
The official migration guide covers the APIs it lists for each release. See every version with API removals.