What is an EndpointSlice?
A Kubernetes API object (discovery.k8s.io/v1) that stores the IP addresses and ports of Pods backing a Service. Think of a Service as the published name and EndpointSlices as the phone book of healthy backends behind it. kube-proxy reads these to route traffic.
Who creates them?
For any Service with a selector, the EndpointSlice controller (in kube-controller-manager) creates and updates slices automatically as Pods start, stop, or fail probes. You can also create custom slices for external backends.
Chunked for scale (max 100)
Instead of one giant Endpoints object, backends are split into slices of up to 100 entries each. A Service with 350 Pods gets 4 slices — updates touch only the changed slice.
Efficient partial updates
Only the EndpointSlices that actually change are transmitted and reconciled, reducing load on the API server and watchers compared to full replacement.
Topology-aware routing
Each endpoint carries zone, nodeName, and optional hints so kube-proxy and service meshes can prefer same-zone traffic for lower latency.
Dual-stack native
IPv4 and IPv6 addresses get separate EndpointSlices per address family, enabling clean dual-stack networking without workarounds.