结论
挂不上
能挂
背景
在docker desktop上开启k8s,以mysql为例,把data文件夹映射到本地文件夹作为持久化保存,在docker上可以直接-v
,k8s就通过挂载PV的方式。尝试了网上几种方案:
a.直接挂载,由于docker desktop是基于wsl的,路径其实都在docker-desktop-data里面,都是虚拟的,不管挂载哪个路径,本地都查不到(有些说在wsl的mnt下面可以,也没得
b.windows文件共享,其实是smb协议,要装一个插件,但是好像只适配老版本的k8s(懒得装
c.开启nfs挂载,用vmware弄了一个linux虚拟机开启nfs,配置完了实际本地文件也没有
一种可行方案,比较麻烦
把同一个pvc挂载到2个容器共享,一个容器是mysql服务,一个容器用nginx开启文件服务,把pv的数据通过文件服务备份(遇到权限问题,暂时未解决。
参考评论区的回复,其实就是方案a,可能之前挂载的时候没有重启pv和pod导致没关联上。改用hostPath,路径修改为/run/desktop/mnt/host/<dist>/<dir>
就可以了。如下创建了一个mysql的pv
顺便一提,SQL Server(MSSQL)挂载数据路径/var/opt/mssql
,需要先把数据文件复制到本地再重新挂载到对应路径,不然无法启动~~