10249 是什么
10249 是 kube-proxy 的 metrics 端口:它暴露代理自身的运行指标,例如规则同步耗时、同步失败次数、iptables 或 ipvs 中服务与端点的数量。默认只绑定在本机(127.0.0.1),常由 node exporter 或 Prometheus 的 ServiceMonitor 采集。排查「Service 转发不生效」这类问题时,同步相关的指标往往比日志更直接,因为规则同步层的异常经常只留下零星日志。
基本信息
| 服务 | kube-proxy metrics(默认 10249) |
|---|---|
| 协议 | TCP/HTTP |
| 用途 | 代理指标与性能观测 |
| 默认绑定 | 127.0.0.1 |
| 采集方式 | node exporter、ServiceMonitor |
| 转发模式 | iptables、ipvs |
典型使用场景
- 转发异常排障:确认规则同步是否成功、耗时是否异常
- 性能观测:集群规模增长后同步耗时上升的趋势
- 监控接入:把指标纳入统一采集与告警
- 容量评估:转发规则规模与节点资源的关系
- 模式切换:从 iptables 换到 ipvs 前后的基线对比
- 升级验证:代理版本升级后的行为核对
kube-proxy 指标关注点
| 指标类别 | 反映的问题 | 使用建议 |
|---|---|---|
| 规则同步耗时 | 节点规模或规则量大导致同步慢 | 与业务抖动时间点对照 |
| 同步失败次数 | 规则写入失败 | 非零即需立即排查 |
| 服务与端点数量 | 转发规模 | 评估规则膨胀的起点 |
| 模式相关指标 | iptables 与 ipvs 的差异 | 切换模式时重建基线 |
指标查看与日志
指标查看与日志
curl -s http://127.0.0.1:10249/metrics | grep -E 'sync|proxy' | head -10
ss -lntp | grep 10249 # 监听核查
kubectl -n kube-system logs -l k8s-app=kube-proxy --tail=50 # 代理日志
kubectl get svc -A | wc -l # 服务规模
# 规则侧: iptables-save 或 ipvsadm -Ln 可用于交叉验证kube-proxy 的模式决定指标含义与调参方向:排障前先确认是 iptables 还是 ipvs,否则会把规则过多的经验套用到另一套模型上。
把 metrics 从 127.0.0.1 改成 0.0.0.0 时必须同时加网络策略:节点内网可达范围一旦放宽,指标与节点信息就成了免费情报。
代理以 DaemonSet 运行,每个节点一份:节点级问题优先在对应节点执行命令,用 kubectl logs 看错节点是常见的时间浪费。
集群规模增大后同步耗时会自然上升:这是容量信号而不是故障,判断标准是它与业务抖动是否时间吻合。