Docker Kubernetes无法在WSL2映像内装入卷
我正在尝试在我的WSL2 Linux发行版中安装MSSQL服务器,在那里我为我的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
.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