NewsCloud & DevOpsInfrastructure

Kubernetes 1.37: IPVS Out, HPA Scale-to-Zero In, DRA Stable

Kubernetes 1.37 release announcement showing helm wheel logo with DRA, HPA scale-to-zero, and IPVS deprecation highlights
Kubernetes 1.37 ships August 26 with 86 enhancements

Kubernetes 1.37 ships August 26, and the sneak peek published July 31 gives operators enough to plan with. Eighty-six enhancements are on the tracker — sixteen graduating to stable — and buried in the list is a deprecation warning that anyone still running kube-proxy in IPVS mode needs to act on now, not after the release drops.

kube-proxy IPVS Is Officially on Its Way Out

Starting with 1.37, kube-proxy logs a deprecation warning on startup when it detects IPVS mode. That warning is the first step in a three-release countdown:

  • 1.37 (August 2026): Deprecation warning on startup
  • 1.40 (April 2027): IPVS disabled by default
  • 1.43 (April 2028): IPVS removed entirely

Three releases is not a lot of runway, especially if your organization runs on a six-month upgrade cadence. Check your configuration now:

kubectl -n kube-system get configmap kube-proxy   -o jsonpath='{.data.config\.conf}' | grep 'mode:'

If the output shows mode: ipvs, start your migration. The replacement is nftables, which delivers the same O(1) lookup performance IPVS was known for — without the maintenance baggage. Migrating is a two-step process that does not require draining nodes:

kubectl edit configmap -n kube-system kube-proxy
# Change mode: ipvs to mode: nftables
kubectl rollout restart daemonset kube-proxy -n kube-system

kube-proxy restarts node-by-node as a DaemonSet and cleans up existing IPVS rules automatically. The Tigera migration guide covers edge cases around custom session affinity configurations worth reading before you flip the switch in production.

HPA Scale-to-Zero Hits Beta — No KEDA Required

The HPAScaleToZero feature gate moves to beta in 1.37, making it possible for Horizontal Pod Autoscaler to scale a deployment to zero replicas. For queue-based worker deployments that sit idle between jobs, this means zero infrastructure cost at idle — a capability that previously required KEDA or Knative.

There is one constraint: scale-to-zero only works with external or object metrics, not CPU or memory. The HPA controller cannot calculate a target from a utilization percentage when the current replica count is zero. You need a metric that expresses demand independent of pod count, like a queue depth:

spec:
  minReplicas: 0
  maxReplicas: 10
  metrics:
  - type: External
    external:
      metric:
        name: queue_messages_visible
      target:
        type: Value
        value: "0"

The default five-minute stabilization window prevents flapping on bursty queues before the HPA scales to zero. KEDA remains useful for its extensive event source connectors, but the fundamental “scale to zero when idle” use case is now native Kubernetes. The HPA scale-to-zero KEP has full implementation details for teams customizing stabilization behavior.

DRA Graduates: GPU Cluster Management Gets a Real API

Dynamic Resource Allocation’s device taints and tolerations (KEP-5055) graduate to stable. If you run GPU clusters, this is the feature the device plugin model was missing: the ability to mark degraded hardware as unhealthy and control which workloads land on it.

The model mirrors node taints. A DRA driver or admin creates a DeviceTaintRule targeting a specific GPU. Workloads without a matching toleration are blocked. Workloads that tolerate the taint — a debugging job or a fault-tolerant training run — proceed. No more manual cordon-and-drain sequences when a GPU starts failing ECC checks.

Also reaching stable: DRA device attributes in the Downward API (KEP-5304). Pods can read their own device metadata — PCIe address, UUID, NUMA node — from a mounted file without making any Kubernetes API calls. Distributed training jobs using NCCL need hardware topology at startup; this delivers it cleanly.

Other Notables in 1.37

Pod-level resources (KEP-2837) graduate to stable, letting you set resource requests and limits at the pod level rather than per-container. For sidecar-heavy workloads, this eliminates the guesswork of padding individual container limits when the containers share a single workload’s resource budget.

Under the hood, the API server gets faster. Internal type elimination delivers 5.7x faster pod list conversions with 3.3x lower memory usage. CBOR serialization for CRDs hits 8x faster encoding versus JSON. These are not features you configure — they just make your control plane cheaper to operate at scale.

Three Things to Do Before August 26

  1. Check your kube-proxy mode. Run the grep command above. If you see mode: ipvs, schedule your nftables migration before upgrading.
  2. Audit your containerd version. Kubernetes 1.37 ends support for containerd 1.x. Nodes on 1.7.x or earlier need to upgrade to containerd 2.0 before you move to 1.37.
  3. Test HPAScaleToZero for idle workloads. Queue-based deployments with external metrics should test this in staging now. It is stable enough for evaluation on any cluster you can upgrade early.

The full feature breakdown from Cloudsmith covers all 86 enhancements if you want the complete picture ahead of the August 26 release.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *

    More in:News