yaml 文件
"/sbin/tini","--","/usr/bin/samba.sh","-p", "-u", "user1;password1", "-s", "user1;/shared;yes;no;no"
,
- “user1;password1”:
创建一个叫user1
的用户,他的密码是password1
- “user1;/shared;yes;no;no”
用户user1
的目录是/shared
,允许browser
, 不允许readonly
,不允许guest
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: smb-volume
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 32Gi
storageClassName: rook-ceph-block
volumeMode: Filesystem
---
apiVersion: v1
kind: Service
metadata:
name: smb
spec:
ports:
- name: "445"
port: 445
targetPort: 445
- name: "139"
port: 139
targetPort: 139
selector:
io.kompose.service: smb
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
io.kompose.service: smb
name: smb
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: smb
template:
metadata:
labels:
io.kompose.service: smb
spec:
containers:
- command: ["/sbin/tini","--","/usr/bin/samba.sh","-p", "-u", "user1;password1", "-s", "user1;/shared;yes;no;no"]
image: dperson/samba
name: smb
ports:
- containerPort: 445
protocol: TCP
- containerPort: 139
protocol: TCP
stdin: true
tty: true
volumeMounts:
- mountPath: /shared
name: data-volume
restartPolicy: Always
volumes:
- name: data-volume
persistentVolumeClaim:
claimName: smb-volume
创建服务
- 创建服务
# kubectl apply -f test_smb_server.yaml
persistentvolumeclaim/smb-volume created
service/smb created
deployment.apps/smb created
- 查看情况
# kubectl get -f test_smb_server.yaml
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/smb-volume Bound pvc-0d10b9cb-b628-4666-a882-0453745da8e6 32Gi RWO rook-ceph-block 21s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/smb ClusterIP 10.233.12.121 <none> 445/TCP,139/TCP 21s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/smb 1/1 1 1 21s
# kubectl logs pods/smb-9f6666c8d-f7qmq -c smb
Added user user1.
smbd version 4.12.2 started.
Copyright Andrew Tridgell and the Samba Team 1992-2020
daemon_ready: daemon 'smbd' finished starting up and ready to serve connections
# kubectl exec -it pods/smb-9f6666c8d-f7qmq -c smb -- cat /etc/samba/smb.conf | tail
fruit:wipe_intentionally_left_blank_rfork = yes
[user1]
path = /shared
browsable = yes
read only = no
guest ok = no
veto files = /.apdisk/.DS_Store/.TemporaryItems/.Trashes/desktop.ini/ehthumbs.db/Network Trash Folder/Temporary Items/Thumbs.db/
delete veto files = yes
食用姿势
随便到一个 kubernetes 集群的 node 上
# apt install cifs-utils
# mkdir -p /mnt/samba
# mount -v -t cifs //10.233.12.121/user1 /mnt/samba -o username=user1,password=password1
mount.cifs kernel mount options: ip=10.233.12.121,unc=\\10.233.12.121\user1,user=user1,pass=********
# df -h /mnt/samba/
Filesystem Size Used Avail Use% Mounted on
//10.233.12.121/user1 32G 17M 32G 1% /mnt/samba