Docker Kubernetes无法在WSL2映像内装入卷

Docker Kubernetes无法在WSL2映像内装入卷,docker,kubernetes,kubernetes-pod,docker-volume,Docker,Kubernetes,Kubernetes Pod,Docker Volume,我正在尝试在我的WSL2 Linux发行版中安装MSSQL服务器,在那里我为我的.mdf-和.ldf-文件装入一个卷。 但是,我无法让Kubernetes看到包含上述文件的文件夹 我的文件存储在主机(Windows)上的C:\WindowsFolder\data中,这允许WSL2在路径/mnt/C/WindowsFolder/data(Linux)中查看它们 如果我运行以下yaml文件,kubectl设置除我的数据之外的所有内容-我将其装入的文件夹(/data)为空 apiVersion:app

我正在尝试在我的WSL2 Linux发行版中安装MSSQL服务器,在那里我为我的
.mdf
-和
.ldf
-文件装入一个卷。 但是,我无法让Kubernetes看到包含上述文件的文件夹

我的文件存储在主机(Windows)上的
C:\WindowsFolder\data
中,这允许WSL2在路径
/mnt/C/WindowsFolder/data
(Linux)中查看它们

如果我运行以下yaml文件,
kubectl
设置除我的数据之外的所有内容-我将其装入的文件夹(
/data
)为空

apiVersion:apps/v1 种类:部署 元数据: 名称:我的数据库 标签: app.kubernetes.io/name:我的部署 规格: 副本:1份 选择器: 火柴标签: app.kubernetes.io/name:标签标识符 模板: 元数据: 标签: app.kubernetes.io/name:标签标识符 规格: 主机名:“数据库” securityContext: 组:0 容器: -名称:数据库 图片:“mcr.microsoft.com/mssql/server:2019最新版本” imagePullPolicy:如果不存在 端口: -集装箱港口:1433 协议:TCP 环境: -姓名:“接受你” 值:“Y” -名称:“MSSQL_数据_目录” 值:/data -名称:“MSSQL_PID” 价值:“开发者” -名称:“SAU密码” 值:“超级机密123!” 体积数量: -名称:“myvolume” 装载路径:/data 卷数: -名称:“myvolume” 主机路径: 路径:“/mnt/c/windowsFolder/Database” 然后,我尝试在我的WSL2中启动一个docker容器-它按预期工作,但从长远来看,这不是一个好的解决方案:

wsl.exe #Enter WSL2

docker run -d --name sql-t1 -e "ACCEPT_EULA=Y" \ 
  -e "SA_PASSWORD=SuperSecret123!" -p 1433:1433 \ 
  -v /mnt/c/windowsFolder/Database:/data \ 
  mcr.microsoft.com/mssql/server:2019-latest

docker ps #find my containerID

docker exec -it <containerId> bash #step into docker container

> ls /data #shows my files correctly
编辑2:

我注意到文件夹的chmod是755而不是777。 我通过添加一个
initContainer
并删除安全组修复了这个问题,尽管它仍然没有帮助:

apiVersion:apps/v1 种类:部署 元数据: 名称:我的数据库 标签: app.kubernetes.io/name:我的部署 规格: 副本:1份 选择器: 火柴标签: app.kubernetes.io/name:标签标识符 模板: 元数据: 标签: app.kubernetes.io/name:标签标识符 规格: 主机名:“数据库” 容器: -名称:数据库 图片:“mcr.microsoft.com/mssql/server:2019最新版本” imagePullPolicy:如果不存在 端口: -集装箱港口:1433 协议:TCP 环境: -姓名:“接受你” 值:“Y” -名称:“MSSQL_数据_目录” 值:/data -名称:“MSSQL_PID” 价值:“开发者” -名称:“SAU密码” 值:“超级机密123!” 体积数量: -名称:“myvolume” 装载路径:/data #这是增加的 初始化容器: -名称:mssql数据文件夹权限 图片:“busybox:latest” 命令:[“/bin/chmod”、“-R”、“777”、“/data”] 体积数量: -名称:“myvolume” 装载路径:/data 卷数: -名称:“myvolume” 主机路径: 路径:“/mnt/c/windowsFolder/Database” 编辑3:

应@ovidiu buligan的要求:

kubectl get events-A
给出以下输出:

命名空间上次看到的类型原因对象消息
默认2m15s正常计划pod/myProject-database-7c477d65b8-mmh7h已成功将默认/myProject-database-7c477d65b8-mmh7h分配给docker desktop
默认2m16s正常拉入吊舱/myProject-database-7c477d65b8-mmh7h拉入映像“mcr.microsoft.com/mssql/server:2019最新版本”
默认88s正常拉入pod/myProject-database-7c477d65b8-mmh7h在47.2350549s中成功拉入图像“mcr.microsoft.com/mssql/server:2019最新版本”
默认88s正常创建的pod/myProject-database-7c477d65b8-mmh7h创建的容器数据库
默认87s正常启动pod/myProject-database-7c477d65b8-mmh7h启动容器数据库
默认2m16s正常成功创建复制集/myProject-database-7c477d65b8已创建pod:myProject-database-7c477d65b8-mmh7h
默认2m16s正常扩展复制集部署/myProject数据库将复制集myProject-database-7c477d65b8扩展为1
kubectl描述pod myProject-database-7c477d65b8-mmh7h
给出以下输出:

名称:myProject-database-7c477d65b8-mmh7h
名称空间:默认值
优先级:0
节点:docker desktop/192.168.65.4
开始时间:2021年4月6日星期二13:03:18+0200
标签:app.kubernetes.io/name=StatefulSet数据库
pod模板哈希=7c477d65b8
注释:
状态:正在运行
IP:10.1.0.10
IPs:
IP:10.1.0.10
控制人:ReplicaSet/myProject-database-7c477d65b8
容器:
数据库:
容器ID:docker://f768710e7436d4c813913fa22a20091cb3fb77e1ecfbe2232b0ec6037eef3dbb
图片:mcr.microsoft.com/mssql/server:2019最新版本
图像ID:docker-pullable://mcr.microsoft.com/mssql/server@sha256:ec5492b0b3f9c0707fddd37f0bd3d47d3ebea94a3054afb8b50e9e746d1e5f37
端口:1433/TCP
主机端口:0/TCP
状态:正在运行
开始时间:2021年4月6日星期二13:04:07+0200
准备好了吗
重新启动计数:0
环境:
接受_EULA:Y
MSSQL_数据_目录:/DATA
MSSQL\u LOG\u DIR:/LOG
MSSQL_PID:开发人员
sau密码:SuperSecret123!
挂载:
/来自存储卷声明(rw)的数据
/来自defau的var/run/secrets/kubernetes.io/serviceCount