【问题标题】:Ephemeral Storage Garbage Collection临时存储垃圾收集
【发布时间】:2019-10-31 13:44:28
【问题描述】:

我在容器上指定了临时存储限制和请求,并且我使用的是最新的 amazon-eks-node-1.12-v20190701 映像。

我的问题是,当我指定 ephemeral-storage: 1Mi 时,我的 pod 因使用过多而被驱逐。我可以轻松添加更多内容,但我想知道这是如何工作的,并且 kubernetes 文档不是很有帮助。

根据我的阅读,有一个垃圾收集that will clean up unused images and unused containers. Kubelet will perform garbage collection for containers every minute and garbage collection for images every five minutes.

这也适用于临时存储吗?

如何检查临时存储中的内容(通过容器还是节点?)以及如何减少它?

是不是当 ephemeral-storage 达到 85% 并且运行垃圾回收时,它会被清理?

抱歉问了很多问题,只是想了解一下,很难找到简单的答案

【问题讨论】:

    标签: kubernetes amazon-eks


    【解决方案1】:

    据我所知(如果有错误请纠正我)暂时存储没有垃圾收集。

    我们可以在 Kubernetes 文档中看到关于 Garbage Collection 的内容。

    一些 Kubernetes 对象是其他对象的所有者。例如,一个 ReplicaSet 是一组 Pod 的所有者。拥有的对象称为所有者对象的从属。每个依赖对象都有一个metadata.ownerReferences 字段,指向所属对象。

    有时,Kubernetes 会自动设置 ownerReference 的值。例如,当您创建 ReplicaSet 时,Kubernetes 会自动设置 ReplicaSet 中每个 Pod 的 ownerReference 字段。在 1.8 中,Kubernetes 自动为 ReplicationController、ReplicaSet、StatefulSet、DaemonSet、Deployment、Job 和 CronJob 创建或采用的对象设置ownerReference 的值。

    您还可以通过手动设置ownerReference 字段来指定所有者和家属之间的关系。

    所以我们可以利用垃圾回收来删除依赖对象。

    当您删除一个对象时,您可以指定该对象的从属是否也被自动删除。自动删除依赖项称为级联删除级联删除有两种模式:backgroundforeground

    如果您删除对象而不自动删除其依赖项,则依赖项被称为孤立

    在 Kubernetes v1.16 中引入了新资源 Local ephemeral storage >

    在每个 Kubernetes 节点中,kubelet 的根目录(默认为 /var/lib/kubelet)和日志目录(/var/log)都存储在节点的根分区上。这个分区也被 Pods 通过 emptyDir 卷、容器日志、镜像层和容器可写层共享和使用。

    回答你的问题

    如何检查临时存储中的内容(通过容器还是节点?)以及如何减少它?

    可能可以执行到已安装存储的 docker 容器中并查看那里的内容,但除此之外我看不到访问内容的方法。 至于减少存储(我没有测试过),它可能会删除临时存储的内容,因为它不可扩展。

    【讨论】:

    • 谢谢,我以为是这样,但我想确认一下。
    猜你喜欢
    • 2016-08-28
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 2012-06-28
    • 2011-01-21
    • 1970-01-01
    • 2014-06-02
    • 1970-01-01
    相关资源
    最近更新 更多