Minikube mount宿主机文件变更后容器无法实时感知问题求助
针对你遇到的minikube mount挂载后tail -f无法实时看到宿主机文件变更的问题,结合你的环境(Debian宿主机、VirtualBox、minikube 0.25.2),大概率是以下几个原因之一:
文件系统缓存与同步延迟
minikube通过VirtualBox虚拟机运行,minikube mount底层依赖VirtualBox的共享文件夹机制(比如9p协议)。这类挂载方式默认会启用缓存来提升性能,但缓存会导致宿主机的文件变更无法实时同步到虚拟机内,容器里的tail -f自然看不到最新内容。只有当缓存失效或重新读取时,才能获取到更新后的文件。minikube 0.25.2版本的已知缺陷
你使用的minikube版本是0.25.2,这是一个比较老旧的版本(发布于2018年),当时的挂载同步机制还不完善,存在不少实时同步相关的bug。后续的minikube版本(比如0.26+)针对挂载的实时性做了修复,升级版本大概率能解决这个问题。文件inode被替换导致tail跟踪失效
如果你在宿主机上修改文件时,是通过替换文件的方式(比如用echo "new content" > FILE直接覆盖,或者某些编辑器保存时会删除原文件再新建),这会导致文件的inode发生变化。而tail -f默认是跟踪原文件的inode,不会自动切换到新的inode,所以即使文件内容更新了,tail还是盯着旧的inode对应的文件。只有重新执行tail -f,才会关联到新的inode文件。VirtualBox共享文件夹的同步配置问题
VirtualBox的共享文件夹默认可能没有开启实时同步,部分情况下需要手动配置同步策略。比如在创建共享文件夹时,需要指定automount和transient参数,或者调整缓存模式为“no caching”,才能让宿主机的变更实时同步到虚拟机内。
内容的提问来源于stack exchange,提问作者Afshin Mehrabani

