Kubernetes 访问网络文件共享



最近我们开始使用 Kubernetes 作为推进新项目的途径。我们开始实施其中的一些,我们现在正在努力解决一个问题。如何访问网络文件共享?

我们的 Kubernetes 集群是基于 Linux 的集群,安装在 Windows 机器上。该群集中托管的服务需要能够访问可在该计算机上访问的文件共享(即 \\myFileShare\myfolder(。

我们找不到解决这个问题的方法。我们尝试使用"https://www.nuget.org/packages/SharpCifs.Std/"库通过 SMB 访问文件,但事实证明,该库不支持 SMB 2.0。

我们也在考虑将此驱动器安装为持久卷,但如果我正确理解持久卷应该由 Kubernetes 管理其生命周期,所以我认为它不是为这种东西设计的。

我们试图在互联网上找到解决方案,但我们什么也没找到,但我很确定我们不是第一个需要从 Kuberenetes 集群访问网络文件共享的人。以前有没有人遇到过这个问题,可以为我们提供一些解决方案?

看看 cifs-volumedriver 或这个 Kubernetes CIFS Volume Driver。 它应该适用于您的情况,并且适用于 SMB2.1 下面是使用卷驱动程序的持久卷的示例。

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

凭据使用密钥传递,可以按如下方式声明:

apiVersion: v1
data:
password: ###
username: ###
kind: Secret
metadata:
name: my-secret
type: juliohm/cifs

注意:请注意密钥的类型字段,该字段必须与 卷驱动程序名称。否则,机密值将不会传递给 装载脚本。

另外,请在 Stack 上看看这个问题。它的作者有同样的问题,并展示了如何解决它。

最新更新