A Kubelet has several endpoint paths it listens on, such as /metrics, /metrics/cadvisor, /logs, etc. One can easily query these endpoints by running kubectl get --raw /api/v1/nodes/<node-name>/proxy/<path> (after running kubectl proxy).
My question is how can one obtain the list of all these paths that Kubelet is serving? A list can be found in the Kubelet's own code here, but that's just a subset. There's for example /pods which is not on that list, but defined further down in the code as well. But there are others that aren't explicitly listed in the code, such as /healthz, which one guesses by looking at other lines of the code. I'd also venture to believe that other addons or 3rd party products could result in the Kubelet exposing more paths.
I tried using /healthz?verbose, but it only returns basic information, and nothing near a list of paths:
[+]ping ok
[+]log ok
[+]syncloop ok
healthz check passed
The Kubernetes API Server returns a very nice list of paths using kubectl get --raw / as seen below (truncated due to length). Is there something equivalent for Kubelet's own paths?
{
"paths": [
"/.well-known/openid-configuration",
"/api",
"/api/v1",
"/apis",
"/apis/",
"/apis/admissionregistration.k8s.io",
"/apis/admissionregistration.k8s.io/v1",
"/apis/admissionregistration.k8s.io/v1beta1",
"/apis/apiextensions.k8s.io",
"/apis/apiextensions.k8s.io/v1",
"/apis/apiextensions.k8s.io/v1beta1",
"/apis/apiregistration.k8s.io",
"/apis/apiregistration.k8s.io/v1",
"/apis/apiregistration.k8s.io/v1beta1",
"/apis/apps",
"/apis/apps/v1",
"/apis/authentication.k8s.io",
"/apis/authentication.k8s.io/v1",
"/apis/authentication.k8s.io/v1beta1",
"/apis/authorization.k8s.io",
"/apis/authorization.k8s.io/v1",
"/apis/authorization.k8s.io/v1beta1",
"/apis/autoscaling",
"/apis/autoscaling/v1",
"/apis/autoscaling/v2beta1",
"/apis/autoscaling/v2beta2",
"/apis/batch",
"/apis/batch/v1",
"/apis/batch/v1beta1",
"/apis/certificates.k8s.io",
....