Kubernetes中PVC与volumeMounts部署后Pod文件系统异常排查
异常原因分析
针对你遇到的Kubernetes部署error-manager Pod时的文件异常,核心原因可以从以下几个方面排查:
PVC挂载的目录覆盖特性:Kubernetes将PVC挂载到容器内目标目录时,会完全替换该目录的原有内容。未挂载PVC时,
/sqlite里的两个非空SQLite文件是容器镜像自带的;挂载PVC后,原目录被存储卷的内容覆盖,而这个存储卷里原本只有一个0字节的db.sqlite3,所以最终目录只剩这个空文件。存储卷的初始状态:你使用的
nfs-azurefile-csi-premium存储类对应的Azure File NFS卷,在创建PVC后默认是空的,但这里出现空的db.sqlite3,要么是存储卷被预先初始化了这个空文件(比如PVC或存储类的配置逻辑),要么是Pod启动时应用检测到目录存在但无数据库文件,自动创建了这个空文件。应用初始化逻辑未执行:未挂载PVC时,容器启动时的初始化脚本会生成那两个非空数据库文件;但挂载PVC后,原目录的种子文件或初始化触发条件被覆盖,脚本没有执行,导致没有生成完整的数据库内容,只留下存储卷里的空文件。
NFS存储卷的权限或挂载问题:Azure File NFS卷可能存在权限配置错误,容器内进程没有写入权限,无法初始化数据库内容,只能创建空文件;或者NFS挂载的同步机制异常,导致写入的内容没有持久化,显示为0字节。
内容的提问来源于stack exchange,提问作者alotronto
相关产品推荐
相关产品推荐

