如何在MacOS本地Docker VM的Kubernetes上强制刷新volume挂载
解决方案
- 第一步先校验Docker Desktop文件共享配置
打开Docker Desktop设置界面,进入「Resources」→「File Sharing」,确认你要挂载的代码目录的父级路径已经加入共享列表,如果没有则手动添加后点击「Apply & Restart」重启Docker服务。 - 第二步清理K8s存储与Docker残留缓存
你配置的PV使用了Retain回收策略,删除PVC/PV后底层存储资源不会自动释放,按以下顺序清理残留:- 删除关联的Deployment:
kubectl delete deployment <你的deployment名称> -n wielder-services - 删除PVC:
kubectl delete pvc monitor-pvc -n wielder-services - 删除PV:
kubectl delete pv monitor-pv - 清理Docker孤儿存储卷:
docker volume prune -f
- 删除关联的Deployment:
- 第三步按顺序重建资源并验证路径
先创建StorageClass,再创建PersistentVolume,再创建PersistentVolumeClaim,最后部署Deployment。注意PV配置中spec.local.path必须填写Mac本地代码目录的绝对路径,不要使用相对路径或路径缩写。 - 第四步校验挂载同步状态
Pod启动后执行kubectl exec -it <pod名称> -n wielder-services -- /bin/sh进入Pod内部,在对应挂载目录下执行df -h确认挂载源路径和预期的宿主机路径一致。随后在Mac本地的代码目录新建测试文件,查看Pod内是否同步生成,双向同步验证正常即可。
额外提示:如果你的代码目录开启了iCloud、OneDrive等云同步服务,文件锁会导致Docker同步失效,测试时可暂时关闭这类同步工具。
内容的提问来源于stack exchange,提问作者Rubber Duck
相关产品推荐
相关产品推荐

