最近,我们开始使用Kubernetes作为推进新项目的途径。我们开始实施其中的一些,但现在正面临一个问题。如何访问网络文件共享?
我们的Kubernetes集群是安装在Windows计算机上的基于Linux的集群。该群集中托管的服务需要能够访问该计算机上可以访问的文件共享(即\\ myFileShare \ myfolder)。
我们找不到解决方案。我们尝试使用“ https://www.nuget.org/packages/SharpCifs.Std/”库通过SMB访问文件,但事实证明,该库不支持SMB 2.0。
我们也正在考虑将该驱动器安装为持久卷,但是如果我正确理解持久卷应该由Kubernetes管理其生命周期,那么我不认为它是为这种东西而设计的。
我们试图在Internet上找到解决方案,但没有找到任何东西,但是我敢肯定,我们不是第一个需要从Kuberenetes群集访问Network文件共享的人。以前有人在这个问题上挣扎过,可以为我们提供解决方案吗?
答案 0 :(得分:0)
看看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
使用机密传递凭据,可以将其声明如下:
apiVersion: v1
data:
password: ###
username: ###
kind: Secret
metadata:
name: my-secret
type: juliohm/cifs
注意:请注意机密的类型字段,该字段必须与 卷驱动程序名称。否则,机密值将不会传递给 挂载脚本。
另外,请看看this question on Stack.的作者是否有相同的问题,并说明如何解决。