用于度量的Kubernetes Java API
我通过kubectl命令获取pod指标用于度量的Kubernetes Java API,java,kubernetes,Java,Kubernetes,我通过kubectl命令获取pod指标 ➜ kubectl top pods NAME CPU(cores) MEMORY(bytes) api-6bd876fc8b-85dnx 72m 553Mi ui-67b794cf8d-gcrg5 0m 1Mi 但是我想尝试一下Java客户端 是否支持通过kubernetes客户端获取POD和节点的度量?官方Java客户端库中不包含资源度量API。 因此,您必须按如下方
➜ kubectl top pods
NAME CPU(cores) MEMORY(bytes)
api-6bd876fc8b-85dnx 72m 553Mi
ui-67b794cf8d-gcrg5 0m 1Mi
但是我想尝试一下Java客户端
是否支持通过kubernetes客户端获取POD和节点的度量?官方Java客户端库中不包含资源度量API。 因此,您必须按如下方式查询API服务器:
GET /apis/metrics/v1alpha1/namespaces/{namespace}/pods/{pod}
它将返回当前度量的结果
以下是一些能够添加更多自定义指标的参考:
val client = Config.defaultClient();
Configuration.setDefaultApiClient(client);
Metrics(client).getPodMetrics(
"name-space"
).items.forEach {
it.containers.forEach {metrics ->
println(metrics.usage)
}
}
这应该给出您正在寻找的指标
样本输出
{cpu=Quantity{number=0.011135729, format=DECIMAL_SI}, memory=Quantity{number=831680512, format=BINARY_SI}}
{cpu=Quantity{number=0.008742460, format=DECIMAL_SI}, memory=Quantity{number=781041664, format=BINARY_SI}}
正如blue man所说,现在可以获得此指标
Java解决方案
PodMetricsList=新指标(客户端).getPodMetrics(“游乐场”);
for(PodMetrics PodMetrics:list.getItems()){
对于(ContainerMetrics ContainerMetrics:podMetrics.getContainers()){
System.out.println(containerMetrics.getUsage());
}
}