如何在作业生命周期结束时获取kubernetes作业消耗的资源(CPU和内存)?这超出了kubernetes作业实现的范围吗?
注意:
kubectl describe job
仅提供指定的限制/请求。答案 0 :(得分:1)
我不鼓励您将自己仅限于kubectl top pod
。这仅适用于快速故障排除和仅偷看。
在生产中,您必须有一个更具体的框架来监视资源使用情况,我发现Prometheus非常有用。当然,当您使用GCP时,也可以选择本机监视工具集。
答案 1 :(得分:0)
我们可以使用“ kubectl top pod”命令获取由作业创建的pod的资源消耗,但此时pod必须处于活动状态。
但是,一旦豆荚死亡,我们将无法收集资源消耗。
答案 2 :(得分:0)
如果您不使用外部工具,我想到的唯一选择就是运行一个sidecar容器,该容器记录每个时间段的CPU和内存使用情况。
通过Job资源执行的任务完成工作后,K8S将不会删除相应的Pod(您将看到READY 0/1
和STATUS Completed
),因此您可以查看这些日志和状态每个吊舱中的一个。
(*)如果要记录资源使用情况(与给定的资源请求和限制相比)-您可以使用Downward API,并且此信息将通过环境变量提供给容器。