我对库伯内特斯和道克很陌生,所以对我要耐心点。
我试图在linux中安装一个Windows共享,它包含在一个kubernetes吊舱中的docker中。
我设法获得了kubernetes和docker中的所有正确权限,以便手动挂载共享。但是,我需要通过Dockerfile来完成这个任务,因为它需要自动化。
这是我的Dockerfile:
WORKDIR /app
COPY ./start-script.sh ./start-script.sh
RUN apt-get update && apt-get install -y cifs-utils
RUN mkdir Windows-Share
# RUN mount.cifs <Window share folder> /app/Windows-Share/ -o username=<username>,password=<password>,domain=<domain>
ENTRYPOINT ["bash", "./start-script.sh"]以下是我的入门脚本:
#!/bin/bash
mount.cifs <Window share folder> /app/Windows-Share/ -o username=<username>,password=<password>,domain=<domain>
exec dotnet <dotnet dll>现在应该注意的是,我无法访问任何对接命令,它们都是由kubernetes处理的。在kubernetes创建豆荚之后,日志将显示:
安装错误(13):权限被拒绝 请参阅mount.cifs(8)手册页(例如man mount.cifs)
这让我感到困惑,因为如果我登录到kubernetes吊舱并手动运行挂载命令,它就会挂载得很好。我遗漏了什么?
发布于 2021-02-17 08:04:58
我也有过同样的问题。Mount在服务器本身上工作,将映像作为坞容器运行,而不是以kubernetes部署的方式运行映像。在我的例子中,它有助于使用特权和一些linux功能在部署中添加一个安全上下文:
securityContext:
capabilities:
add:
- SYS_ADMIN
- DAC_READ_SEARCH
- NET_BIND_SERVICE
privileged: true发布于 2018-08-03 21:43:18
正确的方法往往是在容器之外提供适当的存储设置,而不是试图在容器中挂载东西。在Kubernetes的具体情况下,这意味着设置适当的卷,然后将它们安装在您的荚规范中。
没有开箱即用的SMB/CIFS卷驱动程序,但它看起来像微软发布Kubernetes存储插件,可以提供帮助。
https://stackoverflow.com/questions/51678964
复制相似问题