我创建了一些带有容器的 pod,我为其设置了 ephemeral-storage
请求和限制,例如:(这里是 10GB
)
不幸的是,对于某些容器,ephemeral-storage
将由于未知原因被完全填满。我想了解哪些目录/文件负责填充所有内容,但我没有找到解决方案。
我尝试使用 df -h
,但不幸的是,它会提供整个节点的统计信息,而不仅仅是特定的 pod/容器。
有没有办法检索 kubernetes 容器的 ephemeral-storage
使用细节?
最佳答案
Pod 使用临时本地存储作为暂存空间、缓存和日志。 kubelet 可以使用本地临时存储将 emptyDir 卷挂载到容器中,为 Pod 提供暂存空间。
根据您的 Kubernetes 平台,您可能无法轻松确定这些文件的写入位置,任何文件系统都可能填满,但请放心,磁盘正在某处被消耗(或者更糟的是,内存 - 取决于您的 emptyDir 和/或 Kubernetes 平台的具体配置。
引用这个SO有关标准 kubernetes 环境中默认和可分配的临时存储如何从文件系统(安装到/var/lib/kubelet)中获取的更多详细信息的链接。
同时引用 kubernetes 文档,了解如何 ephemeral storage can be managed & Ephemeral storage consumption management works .
我假设您是 GCP 用户,您可以了解您的临时存储使用方式:
菜单>监控>指标资源管理器>
资源类型:kubernetes 节点
& 指标:临时存储
尝试以下命令了解 kubernetes pod/container 的临时存储使用细节:
- 尝试 du -sh/[在容器内运行]:du -sh 将提供容器文件占用的空间。它只是返回当前目录及其中所有这些东西作为一个整体使用的磁盘空间量,例如:2.4G。
您还可以使用 du -h someDir 命令检查完整的文件大小。
- Inspecting container filesystems : 你可以使用/bin/df作为监控ephemeral storage usage的工具在临时容器数据所在的卷上,即/var/lib/kubelet 和/var/lib/containers。
关于linux - 有没有办法检索 kubernetes 容器的临时存储使用详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74430933/