<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/kubernetes-v1-37-etcd-rangestream-cuts-memory-use-on-large-list-reads-puf3koy0c" -->

---
title: Kubernetes v1.37: etcd RangeStream Cuts Memory Use on...
description: Kubernetes v1.37 graduates the etcd RangeStream feature to beta, reducing memory usage during large list reads from etcd. Paired with etcd v3.7, RangeStream...
canonical: https://daily.dev/posts/kubernetes-v1-37-etcd-rangestream-cuts-memory-use-on-large-list-reads-puf3koy0c
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Kubernetes v1.37: etcd RangeStream Cuts Memory Use on Large List Reads | daily.dev
og:description: Kubernetes v1.37 graduates the etcd RangeStream feature to beta, reducing memory usage during large list reads from etcd. Paired with etcd v3.7, RangeStream...
og:url: https://daily.dev/posts/kubernetes-v1-37-etcd-rangestream-cuts-memory-use-on-large-list-reads-puf3koy0c
og:image: https://api.daily.dev/og/posts/puf3koy0C.png
og:image:alt: Kubernetes v1.37: etcd RangeStream Cuts Memory Use on Large List Reads
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Kubernetes v1.37: etcd RangeStream Cuts Memory Use on Large List Reads

**[Kubernetes](https://daily.dev/sources/k8s)** · 3 min read · 0 upvotes · 0 comments

## Summary

Kubernetes v1.37 graduates the etcd RangeStream feature to beta, reducing memory usage during large list reads from etcd. Paired with etcd v3.7, RangeStream splits the response into byte-bounded chunks streamed and decoded incrementally, instead of assembling and holding a whole page in memory on both the API server and etcd sides. This makes peak memory usage more predictable and helps avoid OOM events triggered by large object collections such as Pods. The feature gate EtcdRangeStream is on by default in v1.37, requires etcd v3.7 or later, and automatically falls back to the older paginated Range RPC if the etcd version doesn't support it. Usage can be confirmed via the etcd_request_duration_seconds_count metric with the listStream operation label.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://kubernetes.io/blog/2026/09/01/kubernetes-v1-37-etcd-range-stream>

## Questions this post answers

### What does the EtcdRangeStream feature gate do in Kubernetes v1.37?

It enables the kube-apiserver to use etcd's new RangeStream RPC instead of the older paginated Range RPC when reading whole collections from etcd, such as during watch cache initialization. RangeStream streams results in byte-bounded chunks rather than building a full page in memory, reducing and making peak memory usage more predictable. The gate is beta and enabled by default in Kubernetes v1.37, and requires etcd v3.7 or later; it can be disabled with --feature-gates=EtcdRangeStream=false.

_Track Kubernetes release changes like this one on daily.dev before rolling out a cluster upgrade._

### How can I check whether my Kubernetes cluster is actually using etcd RangeStream instead of the paginated Range path?

Check the etcd_request_duration_seconds_count metric with the operation label listStream on the API server; a non-zero count confirms RangeStream is in use. If the count stays at zero, the API server is still falling back to the paginated Range path, most commonly because the connected etcd version is older than v3.7, which RangeStream requires alongside Kubernetes v1.37.

_Cluster operators verifying rollout behavior can follow etcd and Kubernetes release notes on daily.dev._

## Similar posts on daily.dev

- [Announcing etcd v3.7.0](https://daily.dev/posts/announcing-etcd-v3-7-0-nx1zk0xsu) · Kubernetes · 0 upvotes · 0 comments
- [Announcing etcd 3.7.0-beta.0](https://daily.dev/posts/announcing-etcd-3-7-0-beta-0-haetwfpz1) · Kubernetes · 1 upvotes · 0 comments

---

Tags: [#performance](https://daily.dev/tags/performance), [#kubernetes](https://daily.dev/tags/kubernetes), [#distributed-systems](https://daily.dev/tags/distributed-systems)

[View this post on daily.dev](https://daily.dev/posts/kubernetes-v1-37-etcd-rangestream-cuts-memory-use-on-large-list-reads-puf3koy0c)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Kubernetes v1.37: etcd RangeStream Cuts Memory Use on Large List Reads","url":"https://daily.dev/posts/kubernetes-v1-37-etcd-rangestream-cuts-memory-use-on-large-list-reads-puf3koy0c","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/kubernetes-v1-37-etcd-rangestream-cuts-memory-use-on-large-list-reads-puf3koy0c"},"datePublished":"2026-09-02T00:57:54.848Z","dateModified":"2026-09-02T00:59:11.245Z","description":"Kubernetes v1.37 graduates the etcd RangeStream feature to beta, reducing memory usage during large list reads from etcd. Paired with etcd v3.7, RangeStream...","image":"https://media.daily.dev/image/upload/s--1KxV4ohY--/f_auto/v1722860400/public/Placeholder%2007","thumbnailUrl":"https://media.daily.dev/image/upload/s--1KxV4ohY--/f_auto/v1722860400/public/Placeholder%2007","isAccessibleForFree":true,"articleSection":"Kubernetes","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Kubernetes","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/k8s","url":"https://daily.dev/sources/k8s"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/kubernetes-v1-37-etcd-rangestream-cuts-memory-use-on-large-list-reads-puf3koy0c","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"performance,kubernetes,distributed-systems","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Kubernetes","item":"https://daily.dev/sources/k8s"},{"@type":"ListItem","position":3,"name":"Kubernetes v1.37: etcd RangeStream Cuts Memory Use on Large List Reads"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/kubernetes-v1-37-etcd-rangestream-cuts-memory-use-on-large-list-reads-puf3koy0c#faq","mainEntity":[{"@type":"Question","name":"What does the EtcdRangeStream feature gate do in Kubernetes v1.37?","acceptedAnswer":{"@type":"Answer","text":"It enables the kube-apiserver to use etcd's new RangeStream RPC instead of the older paginated Range RPC when reading whole collections from etcd, such as during watch cache initialization. RangeStream streams results in byte-bounded chunks rather than building a full page in memory, reducing and making peak memory usage more predictable. The gate is beta and enabled by default in Kubernetes v1.37, and requires etcd v3.7 or later; it can be disabled with --feature-gates=EtcdRangeStream=false. Track Kubernetes release changes like this one on daily.dev before rolling out a cluster upgrade."}},{"@type":"Question","name":"How can I check whether my Kubernetes cluster is actually using etcd RangeStream instead of the paginated Range path?","acceptedAnswer":{"@type":"Answer","text":"Check the etcd_request_duration_seconds_count metric with the operation label listStream on the API server; a non-zero count confirms RangeStream is in use. If the count stays at zero, the API server is still falling back to the paginated Range path, most commonly because the connected etcd version is older than v3.7, which RangeStream requires alongside Kubernetes v1.37. Cluster operators verifying rollout behavior can follow etcd and Kubernetes release notes on daily.dev."}}]}
```

