← All stories
● Covered by 1 source · 1 reportMedium impact1 neutral

Kubernetes v1.37 Introduces etcd RangeStream to Reduce Memory for Large List Reads

🔄 Updated 2h ago
New to BrevFeed? We gather this story from every outlet covering it into one summary — ranked by real-world impact, not just the latest headline — so you never miss what matters. What is BrevFeed? →

Key points

  • etcd RangeStream graduates to beta in Kubernetes v1.37.
  • Reduces memory usage for large list reads in API server and etcd.
  • Requires Kubernetes v1.37+ and etcd v3.7+.
  • Streams data in chunks, preventing full collection in memory.

Introduction of etcd RangeStream

Kubernetes v1.37 includes the graduation of etcd RangeStream to beta. This feature, when used with etcd v3.7, aims to decrease the memory footprint of the API server and etcd during operations involving large list reads. It also makes peak memory usage more predictable.

Addressing Memory Consumption Issues

The Kubernetes API server typically serves list and watch requests from its in-memory watch cache. Populating this cache involves reading the full state of a resource from etcd, which can be memory-intensive for resources with many or large objects, like Pods. Previously, the API server paginated these reads by key count, but this method did not account for object size, leading to potentially large pages that could trigger out-of-memory (OOM) errors.

How RangeStream Works

etcd v3.7 introduces the RangeStream RPC, a streaming version of the read operation. Instead of building an entire response before sending it, etcd splits the data into adaptively sized chunks and streams them. This allows memory to be freed as the stream progresses, rather than being held until a complete page is assembled. The API server decodes each chunk upon arrival and releases it before requesting the next, ensuring neither side holds the full collection in memory.

Feature Activation and Compatibility

RangeStream is utilized when the EtcdRangeStream feature gate is enabled on the kube-apiserver. This feature gate is in beta and is enabled by default in Kubernetes v1.37. It requires etcd v3.7 or later. The API server checks for etcd's support at startup and can fall back to older pagination methods at runtime if an older etcd version is detected or if a call returns 'Unimplemented'.

✨ This summary was generated by AI from the outlets' reporting listed below. It is not independently verified and may contain errors — check the original sources. How BrevFeed works →

The daily brief

One email each morning: the day's tech stories, clustered across outlets and summarized. No account needed.

One email a day. Unsubscribe in one click, any time.

Today's brief

Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.

~24 min · 20 stories · Sep 01

▶ Play today's brief Listen on Spotify

New every morning, and the back catalogue is archived by date.

Reporting from

Kubernetes v1.37 graduates etcd RangeStream to beta, which, when paired with etcd v3.7, reduces and stabilizes memory consumption in the API server and etcd during large list reads. This improvement addresses out-of-memory issues that could occur when processing numerous or large objects, such as Pods, by streaming data in chunks rather than assembling full pages in memory.