腾讯云 kubernetes pod 挂载configmap报错:read only fie system
kubernetes pod 挂载configmap报错:read only fie system
背景:使用的是腾讯云的容器服务,镜像是我们研发同学开发的镜像,其中在pod启动时需要新建一个路径 /app/subserver/config/disconf/ 。
但是发现启动的时候报错:
(read only fie system)
检查一下pod的设置,发现挂载的路径是可读写的:
进入容器检查也没问题:
搜索引擎了一番,发现几个类似的报错。但是仔细看看其实不对,他们这些返回的报错都是直接的物理或虚拟机系统报错的,不是k8s pod 的报错。而pod是无法直接重新挂载文件系统的。
权限也有,路径也在,为什么还是说是只读文件系统呢?
百度必应谷歌都没找到可以借鉴的。
正好看到旁边研发同事有空,遂请教。大佬回:这个启动时候要创建写入文件,路径有吗?权限有吗?我一一检查,都有。
大佬沉吟两秒:你进去创建一个文件试试。
另外提一句,腾讯云的容器服务是可以设置启动命令的,比如我现在,就需要让pod启动后休眠一会儿,不然因为pod报错,它会不断自启,那就没办法进去检查了。在高级设置里面,或者可以直接加在yaml文件里:
我进入容器,尝试创建文件:
熟悉的报错。
明明路径有权限,为什么提示只读呢?
大佬问:他这个路径是主机文件系统的吗?
主机文件系统?我看看。
一语惊醒梦中人!
这个不是pod的主机路径啊,这是挂载的configmap的路径。
原来如此。因为挂载的configmap是外部的,不属于pod本身的系统路径,所以是无法在一个configmap路径下面再新建路径的。
比如 /a 是挂载的configmap,那你就不能再创建 /a/b。
那就好办了。把 /app/subserver/config/disconf/ 改为 /app/config/disconf/ ,这样他就是在/app/config这个路径下面创建路径并写入文件,这样应该就没问题了。
可以看到,已经正常写入了三个文件。
感谢远毅大佬!
-----------------------------------------------------------------
能力不高,水平有限,如有不妥还请指出,谢谢!
本文来自博客园,作者:Laijx,转载请注明原文链接:https://www.cnblogs.com/laijx/p/14328828.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下