如何使Kubernetes作业消耗资源?

时间:2019-01-28 09:19:51

标签: kubernetes

如何在作业生命周期结束时获取kubernetes作业消耗的资源(CPU和内存)?这超出了kubernetes作业实现的范围吗?

注意:

  • kubectl describe job仅提供指定的限制/请求。
  • 我知道捕获资源消耗的外部工具。我正在寻找可以与工作元数据一起存储的东西,而无需使用诸如prometheus之类的任何外部监视工具。

3 个答案:

答案 0 :(得分:1)

我不鼓励您将自己仅限于kubectl top pod。这仅适用于快速故障排除和仅偷看。

在生产中,您必须有一个更具体的框架来监视资源使用情况,我发现Prometheus非常有用。当然,当您使用GCP时,也可以选择本机监视工具集。

答案 1 :(得分:0)

我们可以使用“ kubectl top pod”命令获取由作业创建的pod的资源消耗,但此时pod必须处于活动状态。

但是,一旦豆荚死亡,我们将无法收集资源消耗。

答案 2 :(得分:0)

如果您不使用外部工具,我想到的唯一选择就是运行一个sidecar容器,该容器记录每个时间段的CPU和内存使用情况。

通过Job资源执行的任务完成工作后,K8S将不会删除相应的Pod(您将看到READY 0/1STATUS Completed),因此您可以查看这些日志和状态每个吊舱中的一个。

(*)如果要记录资源使用情况(与给定的资源请求和限制相比)-您可以使用Downward API,并且此信息将通过环境变量提供给容器。