Upgrade hop
Kubernetes 1.22 → 1.23
1.23 is itself end of life. If you are on 1.22 today, plan the whole path to a supported version (at least 1.35) with the upgrade planner.
1 · Fix removed APIs first
No API versions are removed between 1.22 and 1.23.
2 · Other changes that can bite
Removed in 1.23
- The IPv6DualStack feature gate is removed now that dual-stack networking is GA.
Deprecated in 1.23
- FlexVolume is deprecated; driver maintainers and users should move to out-of-tree CSI drivers.
- Several klog-specific logging flags are deprecated and their implementation will be removed in a later release.
- The HorizontalPodAutoscaler autoscaling/v2beta2 API is deprecated in favour of autoscaling/v2.
Our summary of the 1.23 release announcement (CC BY 4.0). Read the full changelog for your components.
3 · Upgrade in this order
- Prepare. Move every node to 1.21 or newer if any are older: a 1.23 API server supports kubelets back to 1.21 only. Upgrade to the newest 1.22 patch,
1.22.17. - kube-apiserver to 1.23 (in HA clusters, one instance at a time; old and new may differ by one minor during the roll). Use the newest patch,
1.23.17. - kube-controller-manager, kube-scheduler, cloud-controller-manager to 1.23, once every API server is on 1.23.
- kubelet on each node (drain first). Optional in this hop: kubelets from 1.21 to 1.23 all work with a 1.23 control plane.
- kube-proxy: no newer than the API server, and within the same window as the kubelet it runs beside.
- kubectl: 1.22 to 1.24 all talk to a 1.23 API server.
From the official version skew policy. Managed services run the control-plane steps for you; node pools are still yours to schedule.