cluster.ninja

Upgrade hop

Kubernetes 1.31 → 1.32

1.31End of lifeEOL 11 Nov 2025 1.32End of lifeEOL 28 Feb 2026

1.32 is itself end of life. If you are on 1.31 today, plan the whole path to a supported version (at least 1.35) with the upgrade planner.

1 · Fix removed APIs first

2 kinds stop being served in 1.32. Update manifests, charts and controllers to the replacement versions while the cluster still runs 1.31: the replacements are already served there.

KindAPI versionStops being servedUse instead
FlowSchema flowcontrol.apiserver.k8s.io/v1beta3 1.32 flowcontrol.apiserver.k8s.io/v1
PriorityLevelConfiguration flowcontrol.apiserver.k8s.io/v1beta3 1.32 flowcontrol.apiserver.k8s.io/v1
ValidatingAdmissionPolicy admissionregistration.k8s.io/v1alpha1 alpha · off 1.32 admissionregistration.k8s.io/v1
ValidatingAdmissionPolicyBinding admissionregistration.k8s.io/v1alpha1 alpha · off 1.32 admissionregistration.k8s.io/v1
SelfSubjectReview authentication.k8s.io/v1alpha1 alpha · off 1.32 authentication.k8s.io/v1

Field-level changes for each of these are on the API pages and in the official Deprecated API Migration Guide.

Check your files with the manifest checker; in a live cluster, the API server metric apiserver_requested_deprecated_apis shows which deprecated APIs clients still call.

2 · Other changes that can bite

Removed in 1.32

  • flowcontrol.apiserver.k8s.io/v1beta3 (FlowSchema, PriorityLevelConfiguration) is no longer served; move manifests and clients to flowcontrol.apiserver.k8s.io/v1, available since v1.29.
  • The original DRA implementation introduced in v1.26 is withdrawn; the structured-parameter model replaces it.

Our summary of the 1.32 release announcement (CC BY 4.0). Read the full changelog for your components.

3 · Upgrade in this order

  1. Prepare. Move every node to 1.29 or newer if any are older: a 1.32 API server supports kubelets back to 1.29 only. Upgrade to the newest 1.31 patch, 1.31.14.
  2. kube-apiserver to 1.32 (in HA clusters, one instance at a time; old and new may differ by one minor during the roll). Use the newest patch, 1.32.13.
  3. kube-controller-manager, kube-scheduler, cloud-controller-manager to 1.32, once every API server is on 1.32.
  4. kubelet on each node (drain first). Optional in this hop: kubelets from 1.29 to 1.32 all work with a 1.32 control plane.
  5. kube-proxy: no newer than the API server, and within the same window as the kubelet it runs beside.
  6. kubectl: 1.31 to 1.33 all talk to a 1.32 API server.

From the official version skew policy. Managed services run the control-plane steps for you; node pools are still yours to schedule.