kubernetes作业中存储了什么?如何检查旧作业的资源使用情况?

kubernetes作业中存储了什么?如何检查旧作业的资源使用情况?,kubernetes,Kubernetes,今天早上,我了解到所有以前运行的cronjobs的作业实例都保留在集群中,这是kubernetes中的(不幸的)默认值。我为没有阅读文件中的细节而感到内疚。我还注意到删除作业(kubectl delete job[or--all])需要相当长的时间。此外,我注意到,当系统中只有大约750个这样的旧作业时(加上一些其他活动容器,否则不会导致重载),即使是一个具有三个大型节点的合理配置的kubernetes集群也会出现故障(尝试使用kubectl时会出现各种超时)[更正:还保留了与这些旧作业相关的约

今天早上,我了解到所有以前运行的cronjobs的作业实例都保留在集群中,这是kubernetes中的(不幸的)默认值。我为没有阅读文件中的细节而感到内疚。我还注意到删除作业(
kubectl delete job[or--all]
)需要相当长的时间。此外,我注意到,当系统中只有大约750个这样的旧作业时(加上一些其他活动容器,否则不会导致重载),即使是一个具有三个大型节点的合理配置的kubernetes集群也会出现故障(尝试使用kubectl时会出现各种超时)[更正:还保留了与这些旧作业相关的约7k个pod:-o]。(我确实了解了如何限制/避免从cronjobs存储旧作业,因此这在将来不会成为问题。)

因此,由于我找不到kubernetes的相关文档,我的(相关)问题如下:

  • 当kubernetes保留旧作业时,到底存储了什么?(可能是相关pod的日志和一些元数据,但这并不能解释为什么它们似乎在集群上放置了这样的负载。)
  • 有没有一种方法可以查看资源(我想只有磁盘,但可能是磁盘) 还有一些其他资源)个人或集体的旧工作 你在用什么
  • 为什么删除kubernetes作业需要一分钟的时间

  • 我不知道k8s是否提供了什么作业消耗了多少磁盘空间的详细信息,但这里有一些您可以尝试的东西

    尝试查找与作业关联的播客:

    kubectl get pods --selector=job-name=<job name> --output=jsonpath={.items..metadata.name}
    
    kubectl get pods--selector=job name=--output=jsonpath={.items..metadata.name}
    
    了解pod后,找到与其关联的docker容器:

    kubectl describe pod <pod name>
    
    kubectl描述pod
    

    在上面的输出中查找
    节点
    容器ID
    。现在在该节点上,在该节点上转到路径
    /var/lib/docker/containers/
    ,在这里您可以进行一些调查,以找出问题所在。

    谢谢。我需要添加一个-a来显示非活动容器,但在其他情况下,这对于查找co在磁盘上的位置很有用ntainer数据是。它看起来一点也不占用空间(不过,在某种程度上,它将取决于日志的大小)。它仍然无法解释为什么数千个数据足以影响kube的性能,但这很有用。谢谢。