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.
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.
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.
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 →
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.
Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.
▶ Play today's briefNew every morning, and the back catalogue is archived by date.
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.