dev-provisioner.yaml

  1. kind: Deployment
  2. apiVersion: extensions/v1beta1
  3. metadata:
  4. name: pro-nfs-provisioner
  5. namespace: pro
  6. spec:
  7. replicas: 1
  8. strategy:
  9. type: Recreate
  10. template:
  11. metadata:
  12. labels:
  13. app: pro-nfs-provisioner
  14. spec:
  15. containers:
  16. - name: nfs-client-provisioner
  17. image: registry.cn-hangzhou.aliyuncs.com/open-ali/nfs-client-provisioner
  18. volumeMounts:
  19. - name: nfs-client-root
  20. mountPath: /persistentvolumes
  21. env:
  22. - name: PROVISIONER_NAME
  23. value: pro-nfs-provisioner
  24. - name: NFS_SERVER
  25. value: node1
  26. - name: NFS_PATH
  27. value: /home/nfs/pro
  28. volumes:
  29. - name: nfs-client-root
  30. nfs:
  31. server: node1
  32. path: /home/nfs/pro

pro-storageclass.yaml

  1. apiVersion: storage.k8s.io/v1
  2. kind: StorageClass
  3. metadata:
  4. name: pro-nfs-storage
  5. provisioner: pro-nfs-provisioner

pro-test-pod.yaml

  1. kind: PersistentVolumeClaim
  2. apiVersion: v1
  3. metadata:
  4. name: test-claim
  5. namespace: pro
  6. spec:
  7. accessModes:
  8. - ReadWriteMany
  9. storageClassName: pro-nfs-storage
  10. resources:
  11. requests:
  12. storage: 1Mi
  13. ---
  14. kind: Pod
  15. apiVersion: v1
  16. metadata:
  17. name: test-pod
  18. namespace: pro
  19. spec:
  20. containers:
  21. - name: test-pod
  22. image: registry.cn-hangzhou.aliyuncs.com/google_containers/busybox:1.24
  23. command:
  24. - "/bin/sh"
  25. args:
  26. - "-c"
  27. - "touch /mnt/SUCCESS && exit 0 || exit 1"
  28. volumeMounts:
  29. - name: nfs-pvc
  30. mountPath: "/mnt"
  31. restartPolicy: "Never"
  32. volumes:
  33. - name: nfs-pvc
  34. persistentVolumeClaim:
  35. claimName: test-claim

pro-rbac.yaml

  1. kind: ServiceAccount
  2. apiVersion: v1
  3. metadata:
  4. name: nfs-client-provisioner
  5. namespace: pro
  6. ---
  7. kind: ClusterRoleBinding
  8. apiVersion: rbac.authorization.k8s.io/v1
  9. metadata:
  10. name: run-nfs-client-provisioner
  11. subjects:
  12. - kind: ServiceAccount
  13. name: nfs-client-provisioner
  14. namespace: pro
  15. roleRef:
  16. kind: ClusterRole
  17. name: cluster-admin
  18. apiGroup: ""

pro-provisioner.yaml

  1. kind: Deployment
  2. apiVersion: extensions/v1beta1
  3. metadata:
  4. name: pro-nfs-provisioner
  5. namespace: pro
  6. spec:
  7. replicas: 1
  8. strategy:
  9. type: Recreate
  10. template:
  11. metadata:
  12. labels:
  13. app: pro-nfs-provisioner
  14. spec:
  15. serviceAccountName: nfs-client-provisioner
  16. containers:
  17. - name: nfs-client-provisioner
  18. image: registry.cn-hangzhou.aliyuncs.com/open-ali/nfs-client-provisioner
  19. volumeMounts:
  20. - name: nfs-client-root
  21. mountPath: /persistentvolumes
  22. env:
  23. - name: PROVISIONER_NAME
  24. value: pro-nfs-provisioner
  25. - name: NFS_SERVER
  26. value: node1
  27. - name: NFS_PATH
  28. value: /home/nfs/pro
  29. volumes:
  30. - name: nfs-client-root
  31. nfs:
  32. server: node1
  33. path: /home/nfs/pro