smb&nfs csi

Ethereal Lv4

1. SMB csi

1.1 (可选)开启smb服务

如果有smb服务则不需要开启

1.1.1 安装server

1
sudo apt install samba -y

1.1.2 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mkdir Share
chmod 0777 Share
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo vim /etc/samba/smb.conf
# 添加如下
[smb1]
comment = Samba
path = /home/ethereal/Share
public = yes
writable = yes
available = yes
browseable = yes
valid users = ethereal


# 创建用户并设置密码
sudo smbpasswd -a ethereal
systemctl restart smbd.service
systemctl enable smbd.service

1.2 部署csi

1
2
3
git clone git@github.com:kubernetes-csi/csi-driver-smb.git
cd csi-driver-smb/charts/v1.17.0/csi-driver-smb
helm install smb-csi ./ -n smb-storage

1.3 使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
kubectl create secret generic smbcreds --from-literal username=USERNAME --from-literal password="PASSWORD"
cd csi-driver-smb/deploy/example
# 参考pv.yaml进行修改,需要修改 volumeHand和volumeAttributes
# volumeHandle format: {smb-server-address}#{sub-dir-name}#{share-name}
# make sure this value is unique for every share in the cluster
volumeHandle: 10.244.0.17/smb1##
volumeAttributes:
source: //10.244.0.17/smb1


# 应用
k apply -f pv.yaml
k apply -f pvc-smb-static.yaml # 可能需要进行修改
k apply -f nginx-pod-smb.yaml # 示例

2. NFS csi

使用如下csi

kubernetes-csi/csi-driver-nfs: This driver allows Kubernetes to access NFS server on Linux node.

与smb类似步骤部署即可。需要注意,此csi存在以下问题:

  1. 不支持扩容

  2. storageclass中写明的mountOptions:nfsvers=4.1,只支持一条,后续的options无效

参考

基于Ubuntu22.04的Samba服务器搭建教程(新手保姆级教程)_ubuntu samba-CSDN博客

csi-driver-smb/deploy/example/e2e_usage.md at master · kubernetes-csi/csi-driver-smb

kubernetes-csi/csi-driver-nfs: This driver allows Kubernetes to access NFS server on Linux node.

csi-driver-smb/deploy/example/e2e_usage.md at master · kubernetes-csi/csi-driver-smb

  • Title: smb&nfs csi
  • Author: Ethereal
  • Created at: 2025-03-26 16:37:54
  • Updated at: 2025-03-26 16:58:50
  • Link: https://ethereal-o.github.io/2025/03/26/smb-nfs-csi/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments