Kubernetes访问网络文件共享

时间:2018-10-09 09:38:29

标签: kubernetes .net-core

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

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

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

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

我们试图在Internet上找到解决方案,但没有找到任何东西,但是我敢肯定,我们不是第一个需要从Kuberenetes群集访问Network文件共享的人。以前有人在这个问题上挣扎过,可以为我们提供解决方案吗?

1 个答案:

答案 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.的作者是否有相同的问题,并说明如何解决。