Announcing support for Kubernetes v1.37

Avisi Cloud now supports Kubernetes v1.37, themed "Garhwal". v1.37 ships in the preview update channel, for new and existing clusters. Use it to test the release on staging or new clusters. Clusters on the regular or stable channel stay on their current Kubernetes version. For production workloads, we recommend the regular channel.

Update a cluster explains how to plan and run the upgrade.

Key new features

  1. HorizontalPodAutoscaler scale to zero (Beta). A HorizontalPodAutoscaler can now scale a workload down to zero Pods when it is idle, and scale it up again when work arrives. This works for workloads that scale on object or external metrics, such as queue consumers and batch workers. Set spec.minReplicas: 0 to use it. Scaling to zero on CPU or memory metrics does not work, because those metrics come from running Pods.

  2. Unused PersistentVolumeClaims (Beta). A PersistentVolumeClaim now gets an Unused condition. It turns True when the last Pod that uses the claim goes away, and its lastTransitionTime tells you how long the claim has been idle. Use it to find volumes left behind by deleted workloads. Kubernetes reports the condition only and never deletes a claim.

  3. StatefulSet maxUnavailable is back on by default. spec.updateStrategy.rollingUpdate.maxUnavailable works again for StatefulSets. With it, a rolling update replaces several Pods at once instead of one at a time.

  4. Pod certificates and Cluster Trust Bundles (Stable). A Pod can request an X.509 certificate through a podCertificate projected volume and read trust anchors from a ClusterTrustBundle projected volume. A signer controller that you deploy issues and renews the certificates, so the Pod does not need a long-lived Secret.

  5. Storage version migration (Stable). When you upgrade a CRD to a new storage version, create a StorageVersionMigration object (storagemigration.k8s.io/v1) and the control plane rewrites the existing custom resources in the new version. You no longer need kubectl get and kubectl replace scripts for this.

  6. KYAML (Stable). kubectl get -o kyaml is now Stable. KYAML is a stricter subset of YAML, and every KYAML file is valid YAML, so your existing manifests and tooling keep working.

  7. The metrics.k8s.io API (Stable). The API behind the HorizontalPodAutoscaler and kubectl top is now available as v1. You can keep using v1beta1 during the transition.

Deprecations

  • Kubernetes deprecates the --filename (-f) flag of kubectl run, because kubectl run builds the Pod from its command-line arguments only.

Platform upgrades

Our v1.37 images ship these component upgrades:

  • Cilium, the default CNI for new clusters, moves from v1.19 to v1.20.2.
  • Calico moves from v3.32 to v3.33.0.
  • containerd moves from 2.3 to 2.4.1, with runc v1.5.2.
Kubernetes v1.37: Garhwal

Available versions


Release notes

Our release notes list the full changelog and the component versions in our managed images: Kubernetes v1.37.1, Cilium v1.20.2, Calico v3.33.0, CNI plugins v1.9.1, containerd 2.4.1 and runc v1.5.2.

For help with your upgrade, contact us through the Console or your usual support channel.