Kubernetes v1.36 Introduces Server-Side Sharded List and Watch for Improved Controller Scalability

The Kubernetes v1.36 release introduces Server-Side Sharded List and Watch to address scaling limitations in massive clusters. As environments grow to tens of thousands of nodes, controllers monitoring high-cardinality resources like Pods often face a performance wall. Previously, every replica of a horizontally scaled controller would receive a full stream of events from the API server, causing redundant CPU consumption and high memory overhead across the control plane. With the new server-side sharding mechanism, the API server can now partition the event stream so that each controller replica processes only a specific shard of data. This distribution of labor reduces the individual load on each controller instance and optimizes the API server's egress bandwidth. This shift is critical for maintaining performance in large-scale production environments where traditional list-and-watch patterns become inefficient. To utilize this feature, developers must update their controller logic to request specific shards and handle the resulting data partitions correctly. Administrators should also verify that their infrastructure can support the increased number of connections if the number of controller replicas is significantly expanded. This change simplifies the development of highly available controllers by providing a native way to partition workloads. Overall, this enhancement provides a standardized path for scaling Kubernetes internals and third-party extensions. By offloading the sharding logic to the API server, the community can move away from complex, custom-built sharding implementations. This leads to more predictable resource usage and better stability for large-scale cloud-native platforms.
Related tools
Recommended tools for this topic
These picks prioritize high-intent tools relevant to this topic. Some links may include partner or affiliate tracking.
Strong cloud alternative for startups and developer-led infrastructure decisions.
View DigitalOceanHigh-value hosting and deployment path for frontend and cloud readers.
View VercelA strong security and edge platform match across CDN, Zero Trust, and app protection.
View CloudflareComparison
| Aspect | Before / Alternative | After / This |
|---|---|---|
| Event Delivery | Full stream sent to all controller replicas | Partitioned shards sent to specific replicas |
| CPU Consumption | Redundant processing across all instances | Distributed processing per shard |
| Scaling Strategy | Primarily vertical scaling for controllers | Efficient horizontal scaling support |
| Logic Location | Custom client-side sharding implementation | Standardized server-side mechanism |
Action Checklist
- Upgrade the Kubernetes control plane to version 1.36 Ensure all API server instances are updated before enabling the feature
- Enable the ServerSideShardedListWatch feature gate Check documentation for the specific toggle in your environment
- Modify controller code to request specific shards Requires updating client-go or custom API request headers
- Monitor API server metrics for shard distribution Watch for uneven load across controller replicas
- Test failover and redistribution scenarios Ensure shards are rebalanced if a controller instance goes down
Source: Kubernetes Blog
This page summarizes the original source. Check the source for full details.
