如何获取Kubelet暴露的所有服务端点路径完整列表
Kubelet全量暴露路径查询说明
目前Kubelet 没有官方提供的、类似Kubernetes API Server那样直接返回全量暴露服务路径的内置接口,相关说明及替代方案如下:
底层原因
Kubelet的路由注册逻辑分散,没有统一的路径聚合机制:
- 原生基础路由分散在Kubelet源码的多个位置,没有统一汇总定义
/healthz、/livez、/readyz这类健康检查路径是复用K8s公共框架层逻辑自动注入的,不会出现在Kubelet自身的显式路由列表中- 第三方插件、扩展组件注册的路径为独立实现,也不会被自动汇总到统一接口
可行的替代方案
如果需要获取当前Kubelet的完整暴露路径列表,可以采用以下方案:
- 参考官方汇总文档:K8s官方文档的Kubelet配置章节已经整理了所有原生内置的服务端点,可以覆盖绝大多数通用场景的查询需求
- 源码梳理:如果需要确认特定版本的原生路径,可以查看对应版本Kubelet源码的
pkg/kubelet/server/server.go文件,除了公开的路由定义片段外,还要注意公共依赖组件注入的隐式路径;扩展类路径可到对应插件的源码中查询 - 运行时枚举扫描:如果需要获取当前运行中Kubelet的实际暴露路径,可以对Kubelet的监听端口(默认认证端口10250,若开启只读端口则为10255)做路径字典枚举,K8s生态已有成熟的通用路径字典可以覆盖绝大多数原生及常见扩展路径
提示:获取到路径后可以运行
kubectl proxy,再执行kubectl get --raw /api/v1/nodes/<node-name>/proxy/<path>即可访问对应Kubelet端点。
补充说明
你尝试调用的/healthz?verbose接口仅返回健康检查项的状态,不会返回路径列表;直接调用Kubelet的根路径/也不会像API Server那样返回全量路径数组,只会返回404或未授权响应。
内容的提问来源于stack exchange,提问作者Mihai Albert
相关产品推荐
相关产品推荐

