doc: update samba server doc

This commit is contained in:
andyzhangx 2020-07-11 14:53:03 +00:00
parent 6ee3075fc6
commit 16ebef9c5e
4 changed files with 79 additions and 27 deletions

View File

@ -2,8 +2,7 @@
### Prerequisite
- [Set up a Samba Server on a Kubernetes cluster](./smb-provisioner/)
> this example will create a new Samba Server(`//smb-server.default.svc.cluster.local/share`) with credential stored in secret `smbcreds`
- Use `kubectl create secret` to create `smbcreds` with Samba Server username, password
> skip this if already done
- Use `kubectl create secret` to create `smbcreds` secret to store Samba Server username, password
```console
kubectl create secret generic smbcreds --from-literal username=USERNAME --from-literal password="PASSWORD"
```

View File

@ -1,37 +1,22 @@
## Set up a Samba Server and a deployment to access Samba Server on a Kubernetes cluster
This page will show you how to:
- set up a Samba Server deployment on a Kubernetes cluster
This page will show you how to set up a Samba Server deployment on a Kubernetes cluster.
> file share data is stored on local disk.
- set up a deployment to access Samba Server on a Kubernetes cluster
### Set up a Samba Server
- Use `kubectl create secret` to create `smbcreds` with SMB username, password
- Use `kubectl create secret` to create `smbcreds` secret to store Samba Server username, password
```console
kubectl create secret generic smbcreds --from-literal username=USERNAME --from-literal password="PASSWORD"
```
- Create a Samba Server deployment
- Option#1. Create a Samba Server deployment on local disk
> modify `/smbshare-volume` in deployment to specify different path for smb share data store
```console
kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/smb-provisioner/smb-server.yaml
```
- Option#2. Create a Samba Server deployment on Azure data disk
```console
kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/smb-provisioner/smb-server-azuredisk.yaml
```
After deployment, a new service `smb-server` is created, file share path is `//smb-server.default.svc.cluster.local/share`
### Create a deployment to access above Samba Server
```console
kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/smb-provisioner/pv-smb.yaml
kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/pvc-smb-static.yaml
kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/deployment.yaml
```
- Verification
```console
# kubectl exec -it deployment-smb-646c5d579c-5sc6n bash
root@deployment-smb-646c5d579c-5sc6n:/# df -h
Filesystem Size Used Avail Use% Mounted on
...
//smb-server.default.svc.cluster.local/share 97G 21G 76G 22% /mnt/smb
/dev/sda1 97G 21G 76G 22% /etc/hosts
...
```

View File

@ -0,0 +1,68 @@
---
kind: Service
apiVersion: v1
metadata:
name: smb-server
labels:
app: smb-server
spec:
type: ClusterIP # use "LoadBalancer" to get a public ip
selector:
app: smb-server
ports:
- port: 445
name: smb-server
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-azuredisk-smbshare
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
storageClassName: default
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: smb-server
spec:
replicas: 1
selector:
matchLabels:
app: smb-server
template:
metadata:
name: smb-server
labels:
app: smb-server
spec:
containers:
- name: smb-server
image: dperson/samba
env:
- name: PERMISSIONS
value: "0777"
- name: USERNAME
valueFrom:
secretKeyRef:
name: smbcreds
key: username
- name: PASSWORD
valueFrom:
secretKeyRef:
name: smbcreds
key: password
args: ["-u", "$(USERNAME);$(PASSWORD)", "-s", "share;/smbshare/;yes;no;no;all;none", "-p"]
volumeMounts:
- mountPath: /smbshare
name: data-volume
ports:
- containerPort: 445
volumes:
- name: data-volume
persistentVolumeClaim:
claimName: pvc-azuredisk-smbshare

View File

@ -30,8 +30,8 @@ make smb-container
make push
make push-latest
echo "sleep 10s ..."
sleep 10
echo "sleep 20s ..."
sleep 20
image="mcr.microsoft.com/k8s/csi/smb-csi:latest"
docker pull $image
docker inspect $image | grep Created