通过 kubernetes 的 pod 提供 samba 服务

dperson/samba

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值