03 Service 网络转发

Service 网络转发

Service 把稳定的访问地址映射到变化的 EndpointSlice;节点数据面执行转发,控制面只负责下发规则所需的对象。
版本:Kubernetes v1.37.2;核实日期:2026-11-12。官方在线文档可能继续更新,源码链接固定到对应发布标签。图为原理抽象,省略非本页重点。
specification { element actor { style { shape person; color amber } } element system { style { color muted } } element component { style { color primary } } element storage { style { shape storage; color green } } } model { api = component 'API server' proxy = component 'kube-proxy' rules = component '节点内核转发规则' c = actor '客户端 Pod' dns = component '集群 DNS' p = component '后端 Ready Pod' } views { dynamic view index { title '核心链路' variant sequence proxy -> api 'watch Service 与 EndpointSlice' proxy -> rules '同步 nftables 等转发规则' c -> dns '查询 Service 名称' dns -> c '返回 ClusterIP' c -> rules '发送到 ClusterIP:port' rules -> p '选择可用端点并转换目的地址' p -> rules '响应,经连接跟踪处理' rules -> c '返回业务响应' } }

关键判断

  • 示例采用 Linux kube-proxy 的内核规则数据面;kube-proxy 不需要在用户态逐包转发。
  • EndpointSlice 保存后端地址与就绪等条件,端点随 Pod 生命周期变化;publishNotReadyAddresses 等配置会改变可见性。
  • 集群也可由 eBPF 等实现替代 kube-proxy,跨节点连通性还依赖集群网络插件,不能把图当作所有集群唯一实现。

边界

本页限于 ClusterIP 的常见 TCP 访问,不展开 NodePort、LoadBalancer、会话亲和及各流量策略;API server 不在业务数据包路径中。

官方出处与源码

回到首页 · 上一篇 · 下一篇