首页/云/Kubernetes 速查/Endpoints/EndpointSlice 解读
网络与服务55 条

Endpoints/EndpointSlice 解读

Endpoints 是 Service 后端的地址清单;EndpointSlice 把后端分片存储(每片默认至多 100 个)并携带就绪状态,是大集群的扩展方案。

Kubernetes 速查云更新于 2026-10-13

对象定位

Endpoints 是 Service 后端的地址清单,由控制器根据 Service 选择器与 Pod 的就绪状态自动维护;EndpointSlice 是它的分片化实现,把后端切成每片默认至多 100 个地址的小对象,并携带每个地址的就绪条件。适用平台是 Kubernetes(1.21 起 EndpointSlice 默认启用)。排障时它是判断「Service 有没有可用后端」最直接的依据,也是 502/503 类问题的第一现场。

基本信息

适用平台Kubernetes,EndpointSlice 为当前推荐机制,Endpoints 仍保留兼容
维护方控制面控制器,按 Service 的 selector 匹配 Pod 并跟踪就绪状态
分片规则每片默认最多 100 个地址,超出后拆成多个切片
关联方式通过 kubernetes.io/service-name 标签关联到对应 Service

典型使用场景

  • 服务不通的第一站:确认是「后端为空」还是「后端存在但连不上」
  • 核对滚动发布影响:观察端点数量在发布过程中的波动是否会造成容量缺口
  • 检查选择器写错:Service 的 selector 与 Pod 标签不一致时,端点会一直为空
  • 无选择器的 Service:手工管理 Endpoints 或指向外部地址时,用它核对条目
  • Headless 服务排查:确认每个 Pod 是否都有独立地址进入列表

查看后端

查看后端
kubectl get endpoints web -o yaml                          # 传统清单:addresses 与 notReadyAddresses
kubectl get endpointslices -l kubernetes.io/service-name=web # 分片视图
kubectl get endpointslice web-abc12 -o yaml | head -40      # 单个切片的条件与端口
kubectl get endpoints web -o jsonpath='{.subsets[*].addresses[*].ip}'   # 只取就绪 IP
kubectl get svc web -o jsonpath='{.spec.selector}'          # 与 Pod 标签比对
kubectl get pods -l app=web -o wide                          # 核对 READY 列

关注点

字段含义排障价值
addresses就绪的后端地址为空说明没有 Ready Pod,服务必然 503
notReadyAddresses未就绪地址有地址但不在此列才接流量,可据此判断探针问题
conditions.readyEndpointSlice 中单个终止点是否就绪false 时被剔除出转发目标
ports该切片对应的后端端口与 targetPort 核对,端口不一致会 502
排查 502 或连接拒绝时,先确认 Service 的 Endpoints 是否有地址,再看地址指向的 Pod 是否真的在监听端口,避免把应用层问题误判成网络问题。
Endpoints 与 EndpointSlice 的内容应当一致;两者长期不一致通常说明控制器异常或集群里同时运行了旧的双写逻辑,值得单独排查。

易错点

  • Pod 未通过 readiness 探针时不会出现在 addresses 中,服务「少后端」先查探针而不是查网络
  • Endpoints 与 EndpointSlice 内容应一致,不一致通常说明控制器异常,需要看控制面日志
  • 把 Endpoints 当持久配置手改:控制器会按选择器刷新,手工加进去的地址会被覆盖,需要长期生效应改选择器或建成无选择器的 Service
  • 只看地址数量不看端口:地址齐全但端口写错同样不通,Service 的 port 与 targetPort 要一起核对

数据来源与参考

  • Kubernetes 官方文档 · EndpointSlices
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌