CSI插件之Samba&CIFS文件系统
- csi
- 2025-03-14
- 168热度
- 0评论
前提
- Kubernetes 1.19+
安装
kubernetes提供CSI驱动将外部存储提供给pod中使用,我们可以通过CSI驱动对接Samba/CIFS共享文件存储
驱动地址:
https://github.com/kubernetes-csi/csi-driver-smb
安装SMB CSI驱动
curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/v1.5.0/deploy/install-driver.sh | bash -s v1.5.0 --
查看pod状态是否正常:
kubectl -n kube-system get pod |grep csi-smb
首先创建一个secret保存samba的用户和密码
kubectl create secret generic samba-auth --from-literal username="samba-csi-username" --from-literal password="samba-csi-password"
创建storage class存储类
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: smb
provisioner: smb.csi.k8s.io
parameters:
source: "//192.168.1.1/share"
csi.storage.k8s.io/node-stage-secret-name: "samba-auth"
csi.storage.k8s.io/node-stage-secret-namespace: "default"
createSubDir: "false" # optional: create a sub dir for new volume
reclaimPolicy: Retain # only retain is supported
volumeBindingMode: Immediate
mountOptions:
- dir_mode=0777
- file_mode=0777
- uid=1001
- gid=1001
部署应用
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: statefulset-smb
labels:
app: nginx
spec:
serviceName: statefulset-smb
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: statefulset-smb
image: nginx:1.21.0
command:
- "/bin/bash"
- "-c"
- while true; do echo $(date) >> /mnt/smb/outfile; sleep 1; done
volumeMounts:
- name: persistent-storage
mountPath: /mnt/smb
updateStrategy:
type: RollingUpdate
selector:
matchLabels:
app: nginx
volumeClaimTemplates:
- metadata:
name: persistent-storage
annotations:
volume.beta.kubernetes.io/storage-class: smb
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi
查看应用状态
kubectl exec -it statefulset-smb-0 sh
# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 40G 19G 20G 50% /
tmpfs 64M 0 64M 0% /dev
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/ubuntu--vg-ubuntu--lv 40G 19G 20G 50% /etc/hosts
//s192.168.1.1/share 40G 21G 20G 52% /mnt/smb
shm 64M 0 64M 0% /dev/shm
tmpfs 3.9G 12K 3.9G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 3.9G 0 3.9G 0% /proc/acpi
tmpfs 3.9G 0 3.9G 0% /proc/scsi
tmpfs 3.9G 0 3.9G 0% /sys/firmware