Легко. Берем и делаем.
Server Message Block (SMB) - сетевой протокол прикладного уровня для удалённого доступа к файлам, принтерам и другим сетевым ресурсам. Часто используется в Windows сетях.
Container Storage Interface (CSI) - стандарт для предоставления блочного и файлового хранилища рабочим нагрузкам (контейнерам) в системах оркестрации контейнеров, таких как Kubernetes. Не смотря на то, что использоваться оно может не только в Kubernetes, нас интересует только это.
Kubernetes 1.22+
cifs-utils
пакет.sudo apt install -y cifs-utils
csi-proxy.exe
. Делается это из Linux. Хотя в теории можно и под Windows, но я не шарю в golang
и уже в пижаме.git clone https://github.com/kubernetes-csi/csi-proxy
sudo make build
После успешной сборки в папке /bin мы найдем csi-proxy.exe
. Теперь надо установить его как сервис. Создаем папки c:\etc\kubernetes\logs
и c:\etc\kubernetes\node\bin
и копируем csi-proxy.exe
в последнюю. Выполняем заклинание:$flags = "-windows-service -log_file=\etc\kubernetes\logs\csi-proxy.log -logtostderr=false"
sc.exe create csiproxy binPath= "\etc\kubernetes\node\bin\csi-proxy.exe $flags"
sc.exe failure csiproxy reset= 0 actions= restart/10000
sc.exe start csiproxy
Тоже всё просто:
curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/install-driver.sh | bash -s master --
Проверяем что всё прошло успешно.
PS C:\Users\v.leschenko> kubectl -n kube-system get pod -o wide -l app=csi-smb-controller
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
csi-smb-controller-77897597b7-6vpgs 3/3 Running 0 3d3h 10.244.135.8 k8s-linux-3 <none> <none>
csi-smb-controller-77897597b7-hkv9n 3/3 Running 0 3d3h 10.244.101.15 k8s-linux-2 <none> <none>
PS C:\Users\v.leschenko> kubectl -n kube-system get pod -o wide -l app=csi-smb-node
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
csi-smb-node-b4xjw 3/3 Running 0 3d3h 192.168.99.150 k8s-linux-1 <none> <none>
csi-smb-node-bllsk 3/3 Running 0 3d3h 192.168.99.160 k8s-linux-2 <none> <none>
csi-smb-node-k9m87 3/3 Running 0 3d3h 192.168.99.161 k8s-linux-3 <none> <none>
PS C:\Users\v.leschenko> kubectl -n kube-system get pod -o wide -l app=csi-smb-node-win
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
csi-smb-node-win-9k29c 3/3 Running 0 23h 10.244.147.27 k8s-windows-3 <none> <none>
csi-smb-node-win-g64t2 3/3 Running 0 23h 10.244.159.35 k8s-windows-1 <none> <none>
csi-smb-node-win-xl8b9 3/3 Running 0 23h 10.244.26.137 k8s-windows-2 <none> <none>
А это уже другая история. Позже будет отдельаня статья.