【发布时间】:2021-05-21 07:33:27
【问题描述】:
我们有一个 docker 映像正在处理 samba 共享上的一些文件。
为此,我们创建了一个挂载到 /mnt/dfs 的 cifs 共享,并且可以通过以下方式在容器中访问文件:
docker run -v /mnt/dfs/project1:/workspace image
现在我要做的是将容器放入 k8s 并从 pod 访问 cifs 共享,可以使用 cifs Volume 驱动程序使用 FlexVolume。这就是弹出一些问题的地方。
我将此 repo 安装为守护程序集
https://k8scifsvol.juliohm.com.br/
它已经启动并运行了。
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: cifs-volumedriver-installer
spec:
selector:
matchLabels:
app: cifs-volumedriver-installer
template:
metadata:
name: cifs-volumedriver-installer
labels:
app: cifs-volumedriver-installer
spec:
containers:
- image: juliohm/kubernetes-cifs-volumedriver-installer:2.4
name: flex-deploy
imagePullPolicy: Always
securityContext:
privileged: true
volumeMounts:
- mountPath: /flexmnt
name: flexvolume-mount
volumes:
- name: flexvolume-mount
hostPath:
path: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/
接下来要做的是添加一个 PeristentVolume,但这需要一个容量,在示例中为 1Gi。这是否意味着我们丢失了 smb 服务器上的所有数据?为什么要为现有的服务器提供容量?
另外,我们如何从 pod 中访问 mount /mnt/dfs 的子目录?那么如何从 pod 中的 /mnt/dfs/project1 访问数据呢?
我们还需要 PV 吗? pod 是否可以从主机挂载的共享中读取?
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
【问题讨论】:
标签: docker kubernetes samba cifs