Kubernetes. Монтируем SMB шары в Windows Containers.

Kubernetes SMB Windows Containers

Если есть необходимость примотнировать SMB шару внутрь Windows контейнера, то можно воспользоваться вот такой штукой.

Если коротко, то для начала надо настроить сами Windows узлы в кластере. Делается это путем копирования папки сюда: C:\usr\libexec\kubernetes\kubelet-plugins\volume\exec\

Затем создать секрет с логином и паролем (в виде base-64):

apiVersion: v1
kind: Secret
metadata:
  name: smb-secret
data:
  password: cGFzc3dvcmQ=
  username: dXNlcm5hbWU=
type: microsoft.com/smb.cmd

А теперь можно монтировать volume вот так:

apiVersion: v1
kind: Pod
metadata:
  name: smb
  namespace: default
spec:
  restartPolicy: Never
  containers:
  - name: smb
    image: microsoft/nanoserver
    command: ["C:\\Windows\\System32\\cmd.exe"]
    args: ["/C", "echo", "0", ">", "c:\\d\\smb_test.txt"]
    volumeMounts:
    - name: smb-volume
      mountPath: /d
  volumes:
  - name: smb-volume
    flexVolume:
      driver: "microsoft.com/smb.cmd"
      secretRef:
        name: "smb-secret"
      options:
        # source can be in any of the following formats
        # \\servername\share\path  (\'s will need to be escaped)
        # smb://servername/share/path
        # //servername/share/path
        source: "\\\\Server\\Share\\optional\\sub\\path"

PS: Для Linux подов подойдет аналогичное решение: https://github.com/fstab/cifs