Skip to main content
RunBook Academy

KubernetesLXXIX · API DeprecationAPI deprecation

API removal planning — the 9-month calendar

Advanced⏱ ~12 minkubectl

What you'll learn

  • State the Kubernetes API removal policy
  • Identify the timeline for deprecated APIs
  • Plan the manifest updates for an API removal
  • Recognize the failure modes of a missed API removal

Prerequisites

Verified against Kubernetes 1.34.x · kubeadm 1.34.x · kubectl 1.34.x · etcd 3.6.x · CoreDNS 1.11.x · containerd 1.7.x / 2.x · 2026-08-16

Not yet marked complete on this device.

The Kubernetes project’s API deprecation policy is the operator’s planning tool. The policy gives a 9-month window for deprecated APIs to be removed; during that window, the API is supported across 3 minor versions. This lesson walks the policy, the timeline, and the planning involved.

The policy

The Kubernetes project’s API deprecation policy:

  • 9 months between deprecation announcement and API removal.
  • 3 minor versions of supported skew during the deprecation period.
  • The deprecated API continues to be served (with warnings) during the deprecation period.
  • After removal, the API returns 404 Not Found for all calls.
gantt
    title API deprecation timeline
    dateFormat  YYYY-MM-DD
    section API
    Available (current)           :done,    a1, 2025-01-01, 365d
    Deprecated (warnings emitted) :active,  a2, 2026-01-01, 270d
    Removed (404 Not Found)       :         a3, 2026-10-01, 365d

The policy is intentionally generous. The 9-month window gives operators time to plan, test, and roll out the migration.

The deprecation list

The Kubernetes project documents the deprecated APIs in the API deprecation guide:

APIDeprecated inRemoved inReplacement
extensions/v1beta1 Ingress1.141.22networking.k8s.io/v1
apps/v1beta1 Deployment1.91.16apps/v1
apps/v1beta2 ReplicaSet1.91.16apps/v1
batch/v2alpha1 CronJob1.81.21batch/v1
policy/v1beta1 PodSecurityPolicy1.211.25policy/v1 (Limited)
rbac.authorization.k8s.io/v1beta11.171.22rbac.authorization.k8s.io/v1
admissionregistration.k8s.io/v1beta11.161.22admissionregistration.k8s.io/v1
apiextensions.k8s.io/v1beta11.161.22apiextensions.k8s.io/v1

The list is current as of 1.34. The “Removed in” column shows the version where the API is no longer served.

The timeline

A typical migration timeline:

2025-09-01: extensions/v1beta1 Ingress deprecated in 1.14
2025-09-01: 9-month clock starts
2026-06-01: extensions/v1beta1 Ingress removed in 1.22

The operator must:

  1. Update the manifests to networking.k8s.io/v1 before the removal version.
  2. Test the migration in staging.
  3. Roll out the migration to production.
  4. Verify the cluster has no extensions/v1beta1 Ingress objects.

The 9-month window is the planning period.

The cluster audit

The cluster audit identifies the deprecated API objects:

kubent --target-version=v1.34.0

The output lists the deprecated API objects that are still running. Each object must be migrated to the replacement API before the removal version.

flowchart LR
    A[Cluster] --> B[kubent]
    B --> C[Deprecated API objects]
    C --> D{Replace with new API?}
    D -->|yes| E[Update manifest]
    D -->|no| F[Investigate]
    E --> G[Apply manifest]
    G --> H[Audit clean]

The manifest update

The manifest update is the schema change. The new API may have:

  • New required fields. e.g., pathType for Ingress networking.k8s.io/v1.
  • Different field types. e.g., backend.service (object) vs backend.serviceName (string).
  • Removed fields. e.g., spec.backend for Ingress.
# Before: extensions/v1beta1
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
spec:
  rules:
    - host: example.com
      http:
        paths:
          - path: /
            backend:
              serviceName: my-service
              servicePort: 80

# After: networking.k8s.io/v1
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress
spec:
  rules:
    - host: example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-service
                port:
                  number: 80

The schema change is significant; the operator must read the migration guide.

The migration guide

The migration guide is the canonical documentation for the API replacement. The Kubernetes project publishes a migration guide for each deprecated API:

URL: https://kubernetes.io/docs/reference/using-api/deprecation-guide/

The migration guide covers:

  • The new API version.
  • The schema changes.
  • The migration steps.
  • The example manifests.

The operator reads the guide before updating the manifests.

The failure mode

A missed API removal causes immediate failures:

After upgrading to 1.22:
  - extensions/v1beta1 Ingress is no longer served
  - kubectl get ingress returns 404 Not Found
  - The Ingress objects are unreachable
  - The cluster's HTTP routing breaks

The cluster is broken; the operator must escalate to restore.

The mitigation is the pre-flight audit: the operator runs kubent before the upgrade and addresses the deprecated APIs.

Cross-course references

  • The Helm course covers chart template evolution.
  • The CI/CD course covers pipeline integration.
  • The Observability course covers upgrade validation.

Quiz

Knowledge check · 4 questions

  1. Q1. What is the Kubernetes project's API deprecation policy?

  2. Q2. The Kubernetes project publishes a migration guide for each deprecated API.

  3. Q3. Walk the planning for the `extensions/v1beta1` Ingress removal in 1.22.

    Cluster is at 1.21. The 1.22 release notes say `extensions/v1beta1` Ingress is removed. The team has 9 months from the 1.14 deprecation announcement; the 1.22 release is the removal deadline.

  4. Q4. What is the failure mode if a deprecated API is not migrated before the removal version?

Passing score: 75%. Answers are checked in this browser.

Production discipline

  • Track the deprecation calendar. 9 months is the planning window.
  • Audit the cluster before every upgrade. kubent is the tool.
  • Read the migration guide. The schema changes are significant.
  • Test the migration in staging. Catch the schema changes before production.
  • Roll out the migration. Apply the new manifests; verify the cluster.
  • Document the migration. The audit, the manifest updates, the rollout.

The API removal is the cluster’s planning event. Operating it well is keeping the calendar current and the migration rehearsed.