linux - 有没有办法检索 kubernetes 容器的临时存储使用详细信息?

标签 linux docker kubernetes google-kubernetes-engine ephemeral-storage

我创建了一些带有容器的 pod,我为其设置了 ephemeral-storage 请求和限制,例如:(这里是 10GB)

enter image description here

不幸的是,对于某些容器,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 的临时存储使用细节:

  1. 尝试 du -sh/[在容器内运行]:du -sh 将提供容器文件占用的空间。它只是返回当前目录及其中所有这些东西作为一个整体使用的磁盘空间量,例如:2.4G。

您还可以使用 du -h someDir 命令检查完整的文件大小。

enter image description here

  1. Inspecting container filesystems : 你可以使用/bin/df作为监控ephemeral storage usage的工具在临时容器数据所在的卷上,即/var/lib/kubelet 和/var/lib/containers。

关于linux - 有没有办法检索 kubernetes 容器的临时存储使用详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74430933/

相关文章:

linux - 在 Ubuntu docker 容器上找不到 Vi 或 Vim

docker - 使用 Docker 的标准 Go 项目布局导致构建上下文问题

security - 如何正确编写Dockerfile,并在主机非root用户/uid下使用docker-compose(最佳实践)?

go - 如何通过k8s.io客户端休息API请求传递容器名称

linux - 限制 sftp 用户主目录并允许访问

linux - 使用 -T 开关运行时 $ENV{PATH} 不安全

linux - Spring roo 仅在由 root 运行时才有效

docker - 我应该在已经具有Cpanel的服务器上安装Docker吗?

docker - 至少遇到一个无效签名

kubernetes - 使用 Helm 创建 ConfigMap 时如何指定 .Files.Get 的自定义路径