什么存储在kubernetes工作中,如何检查旧工作的资源使用?

时间:2017-03-30 13:45:26

标签: kubernetes

今天早上,我了解了所有以前运行的cronjobs的kubernetes中的(不幸)默认值。作业实例保留在群集中。 Mea culpa没有阅读文档中的详细信息。我还注意到删除作业(kubectl delete job [<foo> or --all])需要相当长的时间。此外,我注意到,即使一个合理配置的具有三个大节点的kubernetes集群似乎也失败了(当尝试使用kubectl时获得所有类型的超时),当系统中只有大约750个这样的旧作业时(加上一些其他活动容器,否则并没有带来重负荷)[更正:还有~7k豆荚与那些旧工作相关联,也被保留:-o]。 (我确实了解the configuration settings来限制/避免从cronjobs中存储旧作业,所以这对我来说不会成为一个问题。)

所以,由于我无法找到kubernetes的文档,我的(相关)问题是:

  1. 当kubernetes保留旧工作时究竟存储了什么? (据推测它是关联的pod日志和一些元数据,但这并不能解释为什么它们似乎会在集群上施加这样的负载。)
  2. 有没有办法看到资源(我认为只有磁盘,但也许 有一些其他资源)个人或集体旧工作 正在使用?
  3. 为什么删除kubernetes工作大约需要一分钟?

1 个答案:

答案 0 :(得分:1)

我不知道k8s是否提供了哪些工作消耗了多少磁盘空间的详细信息,但这是您可以尝试的。

尝试找到与作业相关的广告连播:

kubectl get pods --selector=job-name=<job name> --output=jsonpath={.items..metadata.name}

知道了pod后,找到与之关联的docker容器:

kubectl describe pod <pod name>

在上面的输出中查找Node&amp; Container ID。现在继续该节点并在该节点中转到路径/var/lib/docker/containers/<container id found above>,您可以在此处进行调查以找出问题所在。