首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何查看k8s容器写入临时存储的内容

如何查看k8s容器写入临时存储的内容
EN

Stack Overflow用户
提问于 2022-03-23 18:50:36
回答 2查看 1K关注 0票数 1

我们的一个容器使用的是短暂的存储,但我们不知道为什么。在容器中运行的应用程序不应该将任何东西写入磁盘。

我们将存储限制设置为20 We,但仍在被逐出。我们可以提高限制,但这似乎是一个绷带修复。

我们不知道这个容器是写到什么地方的,我也不知道如何检查它。当一个容器被逐出时,我能看到的唯一信息就是容器超过了它的存储限制。

是否有一种有效的方法来了解正在编写的内容,或者是我们梳理代码的唯一选择?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-29 08:50:33

向主题添加详细信息。

豆荚使用短暂的本地存储空间、缓存和日志。豆荚可以被驱逐,因为其他豆荚填充了当地的储藏室,之后新的豆荚被禁止进入,直到足够的储存已经被回收。

kubelet可以使用本地临时存储将emptyDir卷安装到容器中,为Pods提供划痕空间。

  • 对于容器级隔离,如果容器的可写层和日志使用超过其存储限制,kubelet将Pod标记为驱逐。
  • 对于荚级隔离,kubelet计算出了一个总的Pod存储极限,方法是将容器在该Pod中的限制相加。在这种情况下,如果来自所有容器的本地临时存储使用量以及Pod的emptyDir容量之和超过了总的Pod存储限制,那么kubelet还会标记Pod以进行驱逐。

要查看自荚启动以来编写了哪些文件,您可以运行:

代码语言:javascript
运行
复制
find / -mount -newer /proc -print

这将输出比'/proc‘更近期修改的文件列表。

代码语言:javascript
运行
复制
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
/run/secrets
/run/secrets/kubernetes.io
/run/secrets/kubernetes.io/serviceaccount
/run/nginx.pid
/var/cache/nginx
/var/cache/nginx/fastcgi_temp
/var/cache/nginx/client_temp
/var/cache/nginx/uwsgi_temp
/var/cache/nginx/proxy_temp
/var/cache/nginx/scgi_temp
/dev

此外,尝试没有‘-挂载’选项。

要查看是否修改了任何新文件,可以在Pod中运行以下命令的一些变体:

代码语言:javascript
运行
复制
while true; do rm -f a; touch a; sleep 30; echo "monitoring..."; find / -mount -newer a -print; done

并使用du -h someDir命令检查文件大小。

此外,正如@gohm'c在他的回答中指出的那样,您可以使用sidecar/短暂的调试容器。

阅读更多关于局部短期存储的信息。

票数 1
EN

Stack Overflow用户

发布于 2022-03-24 06:33:30

We're not sure what or where this container is writing to, and I'm not sure how to check that.

尝试查看与emptyDir一起安装的容器emptyDir部分,然后添加一个侧面容器(例如。启动shell会话,您可以在其中检查路径。如果集群支持临时调试容器,则不需要sidecar容器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71592515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档