Add example for NFS server
Signed-off-by: Mayank Shah <mayankshah1614@gmail.com>
This commit is contained in:
parent
7fdf12763d
commit
4f9f2ab1a0
18
examples/kubernetes/nfs-provisioner/README.md
Normal file
18
examples/kubernetes/nfs-provisioner/README.md
Normal file
@ -0,0 +1,18 @@
|
||||
# Set up a NFS Server on a Kubernetes cluster
|
||||
|
||||
> Note: This example is for development perspective only. Because the NFS server is sticky to the node it is scheduled on, data shall be lost if the pod is rescheduled on another node.
|
||||
|
||||
To create a NFS provisioner on your Kubernetes cluster, run the following command
|
||||
|
||||
```bash
|
||||
kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/examples/kubernetes/nfs-provisioner/nfs-server.yaml
|
||||
```
|
||||
|
||||
After deploying, a new service `nfs-server` is created. The file share path is accessible at `nfs-server.default.svc.cluster.local/nfsshare`.
|
||||
|
||||
|
||||
To obtain a public IP for the service, run the following command instead
|
||||
|
||||
```bash
|
||||
kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/examples/kubernetes/nfs-provisioner/nfs-server-lb.yaml
|
||||
```
|
||||
42
examples/kubernetes/nfs-provisioner/nfs-server-lb.yaml
Normal file
42
examples/kubernetes/nfs-provisioner/nfs-server-lb.yaml
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: nfs-server
|
||||
labels:
|
||||
app: nfs-server
|
||||
spec:
|
||||
type: LoadBalancer
|
||||
selector:
|
||||
app: nfs-server
|
||||
ports:
|
||||
- port: 2049
|
||||
name: nfs-server
|
||||
---
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: nfs-server
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nfs-server
|
||||
template:
|
||||
metadata:
|
||||
name: nfs-server
|
||||
labels:
|
||||
app: nfs-server
|
||||
spec:
|
||||
containers:
|
||||
- name: nfs-server
|
||||
image: gcr.io/kubernetes-e2e-test-images/volume/nfs:1.0
|
||||
ports:
|
||||
- containerPort: 2049
|
||||
volumeMounts:
|
||||
- mountPath: /nfsshare
|
||||
name: data-volume
|
||||
volumes:
|
||||
name: data-volume
|
||||
hostPath: /nfsshare-volume
|
||||
type: DirectoryOrCreate
|
||||
42
examples/kubernetes/nfs-provisioner/nfs-server.yaml
Normal file
42
examples/kubernetes/nfs-provisioner/nfs-server.yaml
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: nfs-server
|
||||
labels:
|
||||
app: nfs-server
|
||||
spec:
|
||||
type: ClusterIP # use "LoadBalancer" to get a public ip
|
||||
selector:
|
||||
app: nfs-server
|
||||
ports:
|
||||
- port: 2049
|
||||
name: nfs-server
|
||||
---
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: nfs-server
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nfs-server
|
||||
template:
|
||||
metadata:
|
||||
name: nfs-server
|
||||
labels:
|
||||
app: nfs-server
|
||||
spec:
|
||||
containers:
|
||||
- name: nfs-server
|
||||
image: gcr.io/kubernetes-e2e-test-images/volume/nfs:1.0
|
||||
ports:
|
||||
- containerPort: 2049
|
||||
volumeMounts:
|
||||
- mountPath: /nfsshare
|
||||
name: data-volume
|
||||
volumes:
|
||||
name: data-volume
|
||||
hostPath: /nfsshare-volume
|
||||
type: DirectoryOrCreate
|
||||
20
examples/kubernetes/nfs-provisioner/pv-nfs-csi.yaml
Normal file
20
examples/kubernetes/nfs-provisioner/pv-nfs-csi.yaml
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: pv-nfs
|
||||
spec:
|
||||
capacity:
|
||||
storage: 1Gi
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
mountOptions:
|
||||
- vers=3.0
|
||||
csi:
|
||||
driver: nfs.csi.k8s.io
|
||||
readOnly: false
|
||||
volumeHandle: unique-volumeid # make sure it's a unique id in the cluster
|
||||
volumeAttributes:
|
||||
server: nfs-server.default.svc.cluster.local
|
||||
share: /nfsshare
|
||||
Loading…
x
Reference in New Issue
Block a user