10248 是什么
10248 是 kubelet 的历史默认健康检查端口:早期 Kubernetes 版本里,kubelet 在它上面提供 /healthz 与 /metrics,用于节点级健康检查。较新版本默认不再监听这个不安全端口,健康检查改由 10250(HTTPS,需要认证)承担。因此扫描老集群时可能见到 10248 开着,新集群上通常连不上,看到它基本说明版本偏旧或配置未收敛。
基本信息
| 服务 | kubelet healthz(10248,历史默认) |
|---|---|
| 协议 | TCP/HTTP |
| 用途 | 节点级健康检查 |
| 配套端口 | 10250(kubelet HTTPS)、10255(只读,已废弃) |
| 现状 | 新版本默认不再监听 |
| 安全等级 | 仅本机或控制面 |
典型使用场景
- 老集群巡检:判断节点组件版本是否偏旧
- 升级评估:把废弃端口的收敛列入安全基线
- 节点排障:老集群上用它可以快速确认 kubelet 是否存活
- 端口测绘:梳理集群节点上的监听清单
- 安全审计:识别应被关闭的信息暴露面
- 版本对照:核对各节点 kubelet 版本是否一致
节点组件端口
| 端口 | 组件 | 说明 |
|---|---|---|
| 10248 | kubelet healthz | 历史健康检查口,新版本默认不监听 |
| 10250 | kubelet | HTTPS,认证后提供指标与 exec、logs |
| 10255 | kubelet 只读 | 已废弃的只读口 |
| 10256 | kube-proxy healthz | 代理健康检查 |
核对
核对
ss -lntp | grep 10248 # 是否还在监听
curl -s http://127.0.0.1:10248/healthz | head -c 100 # 健康检查
kubectl get nodes -o wide # 节点与版本概览
kubectl version --short | head -2 # 客户端与服务端版本
# 节点级排查: 直接在目标节点执行命令,不要用 kubectl 跨节点猜把 10248 不通当成节点故障是升级后最常见的误判:新版本上它本来就不该监听,应以节点 Ready 状态与 10250 的认证接口为准。
只读类端口(10248、10255)历史上常被用来在集群外收集信息:安全基线里应把它们列为应收敛项。
节点版本不一致时行为差异明显:滚动升级期间新旧节点同时存在,排查问题要先确认问题发生在哪一类节点上。
组件端口只是入口:真正的健康判断要结合节点状态、系统组件与容器运行时,单看端口容易得出片面结论。