Skip to content

Commit 0162e5e

Browse files
nfs deployment
sharing master /storage folder to all cluster for dynamic PVs
1 parent 49d78d2 commit 0162e5e

File tree

1 file changed

+134
-0
lines changed

1 file changed

+134
-0
lines changed

nfs_ok.yaml

+134
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
#https://github.com/kubernetes/kubernetes/blob/master/examples/volumes/nfs/provisioner/nfs-server-gce-pv.yaml
2+
#https://github.com/kubernetes-incubator/nfs-provisioner
3+
kind: ClusterRole
4+
apiVersion: rbac.authorization.k8s.io/v1alpha1
5+
metadata:
6+
name: nfs-provisioner-runner
7+
rules:
8+
- apiGroups: [""]
9+
resources: ["persistentvolumes"]
10+
verbs: ["get", "list", "watch", "create", "delete"]
11+
- apiGroups: [""]
12+
resources: ["persistentvolumeclaims"]
13+
verbs: ["get", "list", "watch", "update"]
14+
- apiGroups: ["storage.k8s.io"]
15+
resources: ["storageclasses"]
16+
verbs: ["get", "list", "watch"]
17+
- apiGroups: [""]
18+
resources: ["events"]
19+
verbs: ["list", "watch", "create", "update", "patch"]
20+
- apiGroups: [""]
21+
resources: ["services", "endpoints"]
22+
verbs: ["get"]
23+
- apiGroups: ["extensions"]
24+
resources: ["podsecuritypolicies"]
25+
resourceNames: ["nfs-provisioner"]
26+
verbs: ["use"]
27+
---
28+
apiVersion: v1
29+
kind: ServiceAccount
30+
metadata:
31+
name: nfs-provisioner
32+
---
33+
kind: ClusterRoleBinding
34+
apiVersion: rbac.authorization.k8s.io/v1alpha1
35+
metadata:
36+
name: run-nfs-provisioner
37+
subjects:
38+
- kind: ServiceAccount
39+
name: nfs-provisioner
40+
namespace: default
41+
roleRef:
42+
kind: ClusterRole
43+
name: nfs-provisioner-runner
44+
apiGroup: rbac.authorization.k8s.io
45+
---
46+
kind: Service
47+
apiVersion: v1
48+
metadata:
49+
name: nfs-provisioner
50+
labels:
51+
app: nfs-provisioner
52+
spec:
53+
ports:
54+
- name: nfs
55+
port: 2049
56+
- name: mountd
57+
port: 20048
58+
- name: rpcbind
59+
port: 111
60+
- name: rpcbind-udp
61+
port: 111
62+
protocol: UDP
63+
selector:
64+
app: nfs-provisioner
65+
---
66+
kind: Deployment
67+
apiVersion: extensions/v1beta1
68+
metadata:
69+
name: nfs-provisioner
70+
spec:
71+
replicas: 1
72+
strategy:
73+
type: Recreate
74+
template:
75+
metadata:
76+
labels:
77+
app: nfs-provisioner
78+
spec:
79+
nodeSelector:
80+
#kubernetes.io/hostname: machine01
81+
node-role.kubernetes.io/master: ""
82+
tolerations:
83+
- key: "node-role.kubernetes.io/master"
84+
effect: NoSchedule
85+
containers:
86+
- name: nfs-provisioner
87+
image: quay.io/kubernetes_incubator/nfs-provisioner:v1.0.8
88+
ports:
89+
- name: nfs
90+
containerPort: 2049
91+
- name: mountd
92+
containerPort: 20048
93+
- name: rpcbind
94+
containerPort: 111
95+
- name: rpcbind-udp
96+
containerPort: 111
97+
protocol: UDP
98+
securityContext:
99+
capabilities:
100+
add:
101+
- DAC_READ_SEARCH
102+
- SYS_RESOURCE
103+
args:
104+
- "-provisioner=nfs.k8s"
105+
env:
106+
- name: POD_IP
107+
valueFrom:
108+
fieldRef:
109+
fieldPath: status.podIP
110+
- name: SERVICE_NAME
111+
value: nfs-provisioner
112+
- name: POD_NAMESPACE
113+
valueFrom:
114+
fieldRef:
115+
fieldPath: metadata.namespace
116+
imagePullPolicy: "IfNotPresent"
117+
volumeMounts:
118+
- name: export-volume
119+
mountPath: /export
120+
volumes:
121+
- name: export-volume
122+
hostPath:
123+
path: /storage/nfs
124+
---
125+
kind: StorageClass
126+
apiVersion: storage.k8s.io/v1beta1
127+
metadata:
128+
name: "nfs.k8s"
129+
annotations:
130+
storageclass.beta.kubernetes.io/is-default-class: "true"
131+
labels:
132+
kubernetes.io/cluster-service: "true"
133+
provisioner: "nfs.k8s"
134+
#parameters:

0 commit comments

Comments
 (0)