1.31 version information and update actions
Review information about version 1.31 of IBM Cloud® Kubernetes Service. For more information about Kubernetes project version 1.31, see the Kubernetes change log.
IBM Cloud Kubernetes Service is a Certified Kubernetes product for version 1.31 under the CNCF Kubernetes Software Conformance Certification program. Kubernetes® is a registered trademark of The Linux Foundation in the United States and other countries, and is used pursuant to a license from The Linux Foundation.
Release timeline
The following table includes the expected release timeline for version 1.31 of IBM Cloud® Kubernetes Service. You can use this information for planning purposes, such as to estimate the general time that the version might become unsupported.
Dates that are marked with a dagger (†
) are tentative and subject to change.
Version | Supported? | Release date | Unsupported date |
---|---|---|---|
1.31 | Yes | 18 September 2024 | 10 December 2025 † |
Preparing to update
This information summarizes updates that are likely to have an impact on deployed apps when you update a cluster to version 1.31. For a complete list of changes, review the community Kubernetes change log and IBM version change log for version 1.31. You can also review the Kubernetes helpful warnings.
Portworx does not yet support version 1.31. Do not upgrade your cluster to version 1.31 if your apps use Portworx.
Cluster autoscaler does not yet support version 1.31. Do not upgrade your cluster to version 1.31 if your cluster uses cluster autoscaler.
Istio does not yet support version 1.31. Do not upgrade your cluster to version 1.31 if your cluster uses Istio.
Update before master
The following table shows the actions that you must take before you update the Kubernetes master.
Type | Description |
---|---|
Calico API server is a managed resource | IBM Cloud Kubernetes Service now manages the installation of and updates to the Calico API server component. If your cluster contains the calico-apiserver namespace, then you must uninstall the Calico API server before upgrading. |
Prevent volume mode conversion | Kubernetes snapshot controller now rejects volume mode changes when creating a persistent volume claim from a volume snapshot unless the snapshot.storage.kubernetes.io/allow-volume-mode-change: "true" annotation
has been added to the VolumeSnapshotContent that corresponds to the VolumeSnapshot . For more information, see Converting the volume mode of a Snapshot. |
Ubuntu 24 is the default operating system | Ubuntu 24 is now the default operating system for IBM Cloud Kubernetes Service version 1.31 clusters. Clusters upgraded to version 1.31 continue to support either Ubuntu 20 or 24 worker nodes and the current operating system for an existing worker pool remains unchanged. For more information and possible migration actions related to Ubuntu 24, see Migrating to a new Ubuntu version. |
Update after master
The following table shows the actions that you must take after you update the Kubernetes master.
Type | Description |
---|---|
Unsupported: kubectl exec command execution without dash |
The deprecated kubectl exec [POD] [COMMAND] command execution has been removed and is replaced by kubectl exec [POD] -- [COMMAND] . If your scripts rely on the previous behavior, update them. |
Unsupported: kubectl drain --delete-local-data option |
The deprecated --delete-local-data option for the kubectl drain command has been removed and is replaced by the --delete-emptydir-data option. If your scripts rely on the previous behavior, update
them. |
Unsupported: Numerous kubectl run options |
The deprecated --filename , --force , --grace-period , --kustomize , --recursive , --timeout , and --wait options for the kubectl run command
have been removed. If your scripts rely on the previous behavior, update them. |
Deprecated: Pod container.apparmor.security.beta.kubernetes.io annotations |
Pod container.apparmor.security.beta.kubernetes.io annotations are now deprecated. These annotations are replaced by the securityContext.appArmorProfile field for pods and containers. If your pods rely on these
deprecated annotations, update them to use the securityContext.appArmorProfile field instead. For more information, see AppArmor support is now stable. |
Deprecated: Persistent volume volume.beta.kubernetes.io/mount-options annotation |
The persistent volume volume.beta.kubernetes.io/mount-options annotation is now deprecated. This annotation is replaced by the spec.mountOptions field. If your pods rely on this deprecated annotation, update
them to use the spec.mountOptions field instead. For more information, see Mount Options. |