beta API version · group extensions
extensions/v1beta1
Removed in 1.22
No Kubernetes release since 1.22 serves apiVersion: extensions/v1beta1. Objects that were stored through it are still in etcd and readable through the replacement version; only manifests and clients that name this version break.
Kinds in extensions/v1beta1
| Kind | Introduced | Deprecated | Stops being served | Use instead |
|---|---|---|---|---|
| DaemonSet | 1.1 | 1.8 | 1.16 | apps/v1 |
| Deployment | 1.1 | 1.8 | 1.16 | apps/v1 |
| DeploymentRollback | 1.2 | 1.8 | 1.16 | — |
| Ingress | 1.1 | 1.14 | 1.22 | networking.k8s.io/v1 |
| NetworkPolicy | 1.3 | 1.9 | 1.16 | networking.k8s.io/v1 |
| PodSecurityPolicy | — | — | 1.16 | Pod Security Admission (no API replacement) |
| ReplicaSet | 1.2 | 1.8 | 1.16 | apps/v1 |
| Scale | 1.1 | 1.2 | 1.16 | — |
Served in which releases
served served, deprecated exists but off by default not served · 1.16 to 1.37; release of introduction unknown for kinds removed from the source, treated as served before removal
Migrating off extensions/v1beta1
DaemonSet removed in 1.16
Move to apps/v1, served since 1.9. Existing objects stay readable through the new version.
What changes:
spec.templateGenerationis removedspec.selectoris now required and immutable after creation; use the existing template labels as the selector for seamless upgradesspec.updateStrategy.typenow defaults toRollingUpdate(the default inextensions/v1beta1wasOnDelete)
- apiVersion: extensions/v1beta1
+ apiVersion: apps/v1
kind: DaemonSetFrom the Kubernetes Deprecated API Migration Guide, © The Kubernetes Authors, CC BY 4.0.
Deployment removed in 1.16
Move to apps/v1, served since 1.9. Existing objects stay readable through the new version.
What changes:
spec.rollbackTois removedspec.selectoris now required and immutable after creation; use the existing template labels as the selector for seamless upgradesspec.progressDeadlineSecondsnow defaults to600seconds (the default inextensions/v1beta1was no deadline)spec.revisionHistoryLimitnow defaults to10(the default inapps/v1beta1was2, the default inextensions/v1beta1was to retain all)maxSurgeandmaxUnavailablenow default to25%(the default inextensions/v1beta1was1)
- apiVersion: extensions/v1beta1
+ apiVersion: apps/v1
kind: DeploymentFrom the Kubernetes Deprecated API Migration Guide, © The Kubernetes Authors, CC BY 4.0.
Ingress removed in 1.22
Move to networking.k8s.io/v1, served since 1.19. Existing objects stay readable through the new version.
What changes:
spec.backendis renamed tospec.defaultBackend- The backend
serviceNamefield is renamed toservice.name - Numeric backend
servicePortfields are renamed toservice.port.number - String backend
servicePortfields are renamed toservice.port.name pathTypeis now required for each specified path. Options arePrefix,Exact, andImplementationSpecific. To match the undefinedv1beta1behavior, useImplementationSpecific.
- apiVersion: extensions/v1beta1
+ apiVersion: networking.k8s.io/v1
kind: IngressFrom the Kubernetes Deprecated API Migration Guide, © The Kubernetes Authors, CC BY 4.0.
NetworkPolicy removed in 1.16
Move to networking.k8s.io/v1, served since 1.8. Existing objects stay readable through the new version.
- apiVersion: extensions/v1beta1
+ apiVersion: networking.k8s.io/v1
kind: NetworkPolicyFrom the Kubernetes Deprecated API Migration Guide, © The Kubernetes Authors, CC BY 4.0.
PodSecurityPolicy removed in 1.16
Move to policy/v1beta1, served since 1.10. Existing objects stay readable through the new version.
- apiVersion: extensions/v1beta1
+ apiVersion: policy/v1beta1
kind: PodSecurityPolicyFrom the Kubernetes Deprecated API Migration Guide, © The Kubernetes Authors, CC BY 4.0.
ReplicaSet removed in 1.16
Move to apps/v1, served since 1.9. Existing objects stay readable through the new version.
What changes:
spec.selectoris now required and immutable after creation; use the existing template labels as the selector for seamless upgrades
- apiVersion: extensions/v1beta1
+ apiVersion: apps/v1
kind: ReplicaSetFrom the Kubernetes Deprecated API Migration Guide, © The Kubernetes Authors, CC BY 4.0.
To convert files mechanically: kubectl convert -f old.yaml --output-version apps/v1 (the kubectl-convert plugin, installed separately). Review defaults it fills in.
Check your manifests for extensions/v1beta1 and other removed versions →