是否有Kublet的API文档

时间:2016-01-29 01:09:46

标签: kubernetes

我知道Kubernetes上为每个节点运行的Kubelet进程运行一个简单的API服务器,但我找不到任何文档。

有人知道有资源吗?

谢谢

5 个答案:

答案 0 :(得分:3)

在任何地方都没有记录(我知道)。我总是以reading the code结束以找出存在的端点。

另请注意,与apiserver中的API不同,无法保证kubelet API在版本之间保持稳定。随着时间的推移,我希望它会被正确版本化(并且可能会被大肆宣传),此时我们将提供文档和向后兼容性的承诺。

答案 1 :(得分:3)

有一个名为kubeletctl的新开源项目。
它记录了所有kubelet API(文档和非文档)。
您可以这样使用:

kubeletctl -s <node_ip> pods  
kubeletctl -s <node_ip> metrics cadvisor

运行kubeletctl -h时,您会看到所有可以使用的命令,它也有子命令,但是您需要键入父命令,然后添加-h,例如kubeletctl metrics -h

以下是一些APIs kubelet工具:

testPaths := map[string]string{
    "/attach/{podNamespace}/{podID}/{containerName}":       "proxy",
    "/attach/{podNamespace}/{podID}/{uid}/{containerName}": "proxy",
    "/configz": "proxy",
    "/containerLogs/{podNamespace}/{podID}/{containerName}": "proxy",
    "/cri/":                    "proxy",
    "/cri/foo":                 "proxy",
    "/debug/flags/v":           "proxy",
    "/debug/pprof/{subpath:*}": "proxy",
    "/exec/{podNamespace}/{podID}/{containerName}":       "proxy",
    "/exec/{podNamespace}/{podID}/{uid}/{containerName}": "proxy",
    "/healthz":                            "proxy",
    "/healthz/log":                        "proxy",
    "/healthz/ping":                       "proxy",
    "/healthz/syncloop":                   "proxy",
    "/logs/":                              "log",
    "/logs/{logpath:*}":                   "log",
    "/metrics":                            "metrics",
    "/metrics/cadvisor":                   "metrics",
    "/metrics/probes":                     "metrics",
    "/metrics/resource/v1alpha1":          "metrics",
    "/pods/":                              "proxy",
    "/portForward/{podNamespace}/{podID}": "proxy",
    "/portForward/{podNamespace}/{podID}/{uid}":         "proxy",
    "/run/{podNamespace}/{podID}/{containerName}":       "proxy",
    "/run/{podNamespace}/{podID}/{uid}/{containerName}": "proxy",
    "/runningpods/":    "proxy",
    "/spec/":           "spec",
    "/stats/":          "stats",
    "/stats/container": "stats",
    "/stats/summary":   "stats",
    "/stats/{namespace}/{podName}/{uid}/{containerName}": "stats",
    "/stats/{podName}/{containerName}":                   "stats",
}

答案 2 :(得分:2)

一些kubelet有用的API卷曲:

http://localhost:10255/pods
http://localhost:10255/stats/summary
http://localhost:10255/metrics

答案 3 :(得分:0)

不记录它是一种说法:不依赖于此,它是一个wip。某些部分,例如当前作为kubelet二进制文件的一部分运行的cadvisor,实际上是more standardized。如果你有一些功能你真的想使用但找不到文档,我建议你询问kubernetes sig-node slack channelsig-node mailing list

答案 4 :(得分:0)

您可以运行此快速命令以列出所有api端点。您将需要安装jq

new_arr = arr.copy() for i, row in enumerate(arr.T): avg = np.mean(row) for j, pixel in enumerate(row): if pixel > avg: new_arr[j,i] = 0 else: new_arr[j,i] = 1