簡體   English   中英

是否有 Kubelet API 的 API 文檔

[英]Is there API documentation for Kubelet API

我知道每個 Kubernetes 節點上的 Kubelet 進程公開了一個簡單的 API 服務器,但我找不到任何相關文檔。

有人知道擁有它的資源嗎?

它沒有記錄在任何地方(我知道)。 我總是最終閱讀代碼以找出存在哪些端點。

另請注意,與 apiserver 中的 API 不同,無法保證 kubelet API 在版本之間穩定。 隨着時間的推移,我希望它會得到正確的版本控制(並且可能會大搖大擺),屆時我們將提供文檔和對向后兼容性的承諾。

一些 kubelet 有用的用於 curl 的 API:

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

有一個名為kubeletctl的新開源項目。
它記錄了所有 kubelet API(文檔和非文檔)。
你可以這樣使用:

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

當您運行kubeletctl -h您將看到您可以使用的所有命令,它也有子命令,但您需要鍵入父命令,然后添加-h ,例如kubeletctl metrics -h

以下是 kubelet 實現的一些API

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",
}

您可以運行此快速命令來列出所有 api 端點。 你需要安裝 jq

kubectl get --raw "/" | jq

不記錄它是一種說法:不要依賴於此,這只是一個小問題。 某些部分,例如當前作為 kubelet 二進制文件的一部分運行的 cadvisor,實際上更加標准化 如果您真的很想使用某些功能但找不到相關文檔,我建議您在 kubernetes sig-node slack channelsig-node 郵件列表上詢問

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM