kubernetes - Kubernetes 访问网络文件共享
问题描述
最近,我们开始使用 Kubernetes 作为推进新项目的途径。我们开始实施其中的一些,现在我们正在努力解决一个问题。如何访问网络文件共享?
我们的 Kubernetes 集群是安装在 Windows 机器上的基于 linux 的集群。该集群中托管的服务需要能够访问该机器上可访问的文件共享(即 \\myFileShare\myfolder )。
我们找不到解决这个问题的方法。我们曾尝试使用“ https://www.nuget.org/packages/SharpCifs.Std/ ”库通过 SMB 访问文件,但事实证明,该库不支持 SMB 2.0。
我们也在考虑将这个驱动器安装为持久卷,但如果我理解正确,持久卷应该由 Kubernetes 管理其生命周期,所以我认为它不是为这类东西设计的。
我们试图在互联网上找到解决方案,但没有找到任何东西,但我很确定我们不是第一个需要从 Kuberenetes 集群访问网络文件共享的人。以前有没有人为这个问题而苦苦挣扎,并且可以为我们提供一些解决方案?
解决方案
看看cifs-volumedriver或这个Kubernetes CIFS Volume Driver。它应该适用于您的情况,并且适用于 SMB2.1 以下是使用卷驱动程序的 PersistentVolume 示例。
apiVersion: v1
kind: PersistentVolume
metadata:
name: mycifspv
spec:
capacity:
storage: 1Gi
flexVolume:
driver: juliohm/cifs
options:
opts: sec=ntlm,uid=1000
server: my-cifs-host
share: /MySharedDirectory
secretRef:
name: my-secret
accessModes:
- ReadWriteMany
凭证使用 Secret 传递,可以声明如下:
apiVersion: v1
data:
password: ###
username: ###
kind: Secret
metadata:
name: my-secret
type: juliohm/cifs
注意:注意机密的类型字段,它必须与卷驱动程序名称匹配。否则,秘密值将不会传递给挂载脚本。
另外,请查看Stack 上的这个问题。它的作者有同样的问题,并展示了如何解决它。
推荐阅读
- laravel - Laravel - 尝试访问存储会出现禁止错误
- python - 如何在上下文切换之前强制 python 命令一起运行?
- wordpress - 联系表格 7 中的自定义验证“需要电子邮件或电话”
- sql - 如何使用sql组合来自两个不同表的结果
- performance - elasticsearch中hotthreads的解读
- ansible - 如何从ansible事实中选择匹配的行?
- crystal-reports - 公式字段中的过滤功能
- node.js - 如何将字符串值从 exec 库返回到对象数组
- c# - 需要使用正则表达式从字符串中过滤值,该字符串可以具有动态数字和文本
- android - 作为一名 UI 设计师(根本不懂任何编码),在设计 IOS/Android 应用程序时我应该记住什么?