kubernetes - 如何获取一堆短期 Kubernetes 作业的指标
问题描述
我有一个案例,即短期(从几秒钟到 1-2 分钟)k8s 作业将根据用户请求创建。我正在尝试检索作业运行时指标(如 cpu 和内存使用情况)。
我想过(并尝试过)的方法包括:
- Prometheus 查询,类似
container_cpu_usage_seconds_total
,但基于拉取的 scape 意味着许多短命的工作不会被包括在内 - Pushgateway,但正如 prometheus 所建议的那样,...... Pushgateway 的有效用例是用于捕获服务级批处理作业的结果,所以我怀疑这不是合适的情况。
- Metric-server,但 metric-server 仅在短期作业 pod 上返回 404,导致比 Prometheus 更差的结果。
- 直接查询
/api/v1/nodes/{nodeName}/proxy/metrics/cadvisor
。虽然几乎是实时的,但它会返回所有容器,所以我必须手动解析结果并找到我需要的东西。
我正在考虑在作业工作者容器旁边使用轻量级监视器容器来检索工作者的指标。但我不知道这是否是一个好主意,即使是这样,如何检索工人的指标。
所以我的问题是:
您推荐什么方法来检索大量短期作业的 cpu 和 memory 使用情况?
解决方案
正如您所写,您使用了 prometheus、pushgateways、metrics-server ns query /api/v1/nodes/{nodeName}/proxy/metrics/cadvisor 如果它们不能满足您足够的新方法,我建议使用集群的监控和指标保存性能是石蕊。
Prometheus 是大多数工程师可能使用的最常见和最复杂的工具,但 Litmus 是一种专注于工作负载测试的新工具,可以保存指标,您可以根据需要存储它们。
您可以在此处找到更多信息:石蕊。
有用的文章:litmus-openebs,这描述了不要获取指标,而不仅仅是内存使用情况。
然后你可以在 egg 中生成图表。gnuplot。
推荐阅读
- amazon-ec2 - 对于 scylladb,一个大型 AWS 实例是否优于几个较小的实例
- php - 如何调整这个研究查询?
- python - 在 pyspark 数据框中减去
- python - 基于索引组对数据帧中的行求和的最pythonic方法
- elixir - 如何测试控制器授权
- css - @font-face 不显示自定义字体?
- python - SSL证书验证失败的tensorflow docker
- python - 使用 keras 在图像上使用 convnet 进行回归 - 准确度不能增加超过 40%
- tensorflow - Tensorflow:设置 XLA_GPU_JIT 设备编号 0 时,XLA 服务不支持设备 CUDA:0
- r - R中绘制预测值并比较随机效应plm模型中的交互项的最佳方法是什么?