We are excited to announce the availability of Kubernetes version 1.31 for your clusters that are running in IBM Cloud Kubernetes Service. This marks our 26th release of Kubernetes.
Our Kubernetes service ensures a straightforward upgrade experience by using the IBM Cloud console, sparing you the need for extensive Kubernetes expertise with just a few clicks! For more information and methods on upgrading your cluster, look here.
When you deploy new clusters, the default Kubernetes version remains 1.30 (soon to be 1.31); however, you have the flexibility to opt for immediate deployment of version 1.31.
Kubernetes version 1.31
In addition to all the great Kubernetes features provided in this release, IBM Cloud Kubernetes Service version 1.31 also includes numerous component updates that our community is excited about. Some of the highlights for the release include:
-
Traffic distribution for Services: Routing incoming traffic to different instances of a service or application within a Kubernetes cluster at scale requires that the load is balanced across available instances, preventing bottlenecks and improving performance. While horizontal pod autoscaler (HPA) is primarily concerned with scaling the number of pods based on predefined metrics such as CPU utilization and memory usage, traffic distribution focuses on routing incoming traffic to different instances of a service within a cluster to ensure that there is even distribution of traffic across available pods. This benefits users in different cases. An organization might not have a strong preference for how their applications’ traffic is routed and would like to simply let Kubernetes handle it. In another case, an organization might want an application to primarily send traffic to endpoints that are topologically close for cost and performance optimization. In Kubernetes v1.31, traffic distribution for Services moves to beta and is enabled by default. To learn more how to leverage this, visit here.
-
Improved ingress connectivity reliability for kube-proxy: Synchronizing between different components to avoid traffic drop is challenging and quite common. Previously, kube-proxy
did not contain any logic about terminating or deleting worker nodes when determining if it was healthy. Terminating worker nodes commonly happen by-design when using the Cluster Autoscaler add-on. With this feature, a mechanism in kube-proxy
has been implemented to include logic that performs connection draining for terminating worker nodes exposed by services of type: LoadBalancer
and externalTrafficPolicy: Cluster
. This feature was promoted to stable in Kubernetes v1.31, to learn more, visit here.
-
Support for Calico API server: IBM Cloud Kubernetes Service now manages the installation of and updates to the Calico API server component. Please note, if your cluster contains the calico-apiserver
namespace, then you must uninstall the Calico API server before upgrading.
-
Ubuntu 24 is now the default operating system: Ubuntu is now the default operating system for IBM Cloud Kubernetes Service v1.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.
To see the full list of IBM and Kubernetes community enhancements, visit Kubernetes v1.31: Elli and IBM Cloud Kubernetes Service version 1.31 change log for more details.
Kubernetes version support updates
Now that IBM Cloud Kubernetes Service supports Kubernetes version 1.31, clusters running version 1.28 are now deprecated with end of support tentatively scheduled for January 31, 2025. It is important to note clusters that run a deprecated Kubernetes version may not receive fixes for security vulnerabilities until they are updated to a supported version.
As a reminder, if your cluster runs a deprecated or unsupported Kubernetes version, review the potential impact of each Kubernetes version update, and update today. If your cluster runs an archived Kubernetes version, create a new cluster and deploy your apps to the new cluster. Here is the current support status for IBM Cloud Kubernetes Service clusters running an earlier Kubernetes version:
-
Clusters running Kubernetes version 1.27 remain unsupported with end of support reached on September 18, 2024. Such clusters will not receive fixes for security vulnerabilities until they are updated to a deprecated or supported version.
-
Clusters running Kubernetes version 1.26 or earlier remain archived. For security reasons, IBM reserves the right to shutdown the control planes of such clusters.
For general questions, engage our team via Slack and join the discussion in the #general channel on our public IBM Cloud Kubernetes Service Slack.