使用 client-go 来解释资源

问题描述

使用 kubectl 我可以使用解释显示资源的文档:

kubectl explain storageclass

client-go 是否有类似的功能

解决方法

您在 Kubernetes 的新版本(从 1.10.7 开始在我的测试)中寻找的 API 是 metrics.k8s.io/v1beta1 API 路由。

如果您运行 kubectl 代理并检查本地主机上的 http://localhost:8001/apis/metrics.k8s.io/v1beta1/pods 和 /nodes,您可以在本地看到它。

我明白你的困惑在哪里。在撰写本文时,metrics/v1beta1 似乎没有生成的类型化包 (https://godoc.org/k8s.io/client-go/kubernetes/typed),也没有出现在 kubernetes.ClientSet 对象中。

您可以通过 rest.RestClient 对象直接访问所有可用的端点,只需将 metrics/v1beta1 指定为 versionedAPIPath,这将比包装精美的 ClientSet 更有效且更不方便,但我不确定它需要多长时间将在该 API 出现在该界面之前。