首页 > 解决方案 > 如何使用 nodejs 获取 kubernetes pod 指标

问题描述

我在当前项目中使用 nodejs kubernetes 客户端@kubernetes/client-node,我想从 pod 收集指标(内存、网络、cpu)

现在有了我会使用的cli

kubectl top pods

或执行 /sys/fs/cgroups/cpu/...

但是我无法在 npm 包中找到正确的 API 或调用。不幸的是,文档只指向官方 API 参考,不幸的是在这种情况下对我没有帮助。

因此,将问题归结为。

如何使用 node.js @kubernetes/client-node 模块从 pod 获取指标?

标签: node.jskubernetesmetrics

解决方案


GitHub 存储库包含以下两个示例:

关键部分:

const kc = new k8s.KubeConfig();
kc.loadFromDefault();
const k8sApi = kc.makeApiClient(k8s.CoreV1Api);

// node
k8s.topNodes(k8sApi).then(...);

// pods
const metricsClient = new k8s.Metrics(kc);
k8s.topPods(k8sApi, metricsClient).then(...);
k8s.topPods(k8sApi, metricsClient, "namespace").then(...);

推荐阅读