本次主要对接K8S和传统的一样而已,比较简单,不再过多讲解
官网
https://github.com/kubernetes-csi/csi-driver-nfs/tree/master/charts
helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts
helm pull csi-driver-nfs/csi-driver-nfs --version 4.11.0
我的yaml
customLabels: {}
image:
baseRepo: registry.cn-hangzhou.aliyuncs.com
nfs:
repository: ccr.ccs.tencentyun.com/abcdh/abpay
tag: nfsplugin-v4.11.0
pullPolicy: IfNotPresent
csiProvisioner:
repository: registry.cn-hangzhou.aliyuncs.com/google_containers/csi-provisioner
tag: v5.2.0
pullPolicy: IfNotPresent
csiResizer:
repository: registry.cn-hangzhou.aliyuncs.com/google_containers/csi-resizer
tag: v1.13.1
pullPolicy: IfNotPresent
csiSnapshotter:
repository: registry.cn-hangzhou.aliyuncs.com/google_containers/csi-snapshotter
tag: v8.2.0
pullPolicy: IfNotPresent
livenessProbe:
repository: registry.cn-hangzhou.aliyuncs.com/google_containers/livenessprobe
tag: v2.15.0
pullPolicy: IfNotPresent
nodeDriverRegistrar:
repository: registry.cn-hangzhou.aliyuncs.com/google_containers/csi-node-driver-registrar
tag: v2.13.0
pullPolicy: IfNotPresent
externalSnapshotter:
repository: registry.cn-hangzhou.aliyuncs.com/google_containers/snapshot-controller
tag: v8.2.0
pullPolicy: IfNotPresent
serviceAccount:
create: true
controller: csi-nfs-controller-sa
node: csi-nfs-node-sa
rbac:
create: true
name: nfs
driver:
name: nfs.csi.k8s.io
mountPermissions: 0
feature:
enableFSGroupPolicy: true
enableInlineVolume: false
propagateHostMountOptions: false
kubeletDir: /var/lib/kubelet
controller:
name: csi-nfs-controller
replicas: 1
strategyType: Recreate
runOnMaster: false
runOnControlPlane: false
enableSnapshotter: true
useTarCommandInSnapshot: false
livenessProbe:
healthPort: 29652
logLevel: 5
workingMountDir: /tmp
dnsPolicy: ClusterFirstWithHostNet
defaultOnDeletePolicy: delete
affinity: {}
nodeSelector: {}
priorityClassName: system-cluster-critical
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoSchedule"
- key: "node-role.kubernetes.io/controlplane"
operator: "Exists"
effect: "NoSchedule"
- key: "node-role.kubernetes.io/control-plane"
operator: "Exists"
effect: "NoSchedule"
- key: "CriticalAddonsOnly"
operator: "Exists"
effect: "NoSchedule"
resources:
csiProvisioner:
limits:
memory: 400Mi
requests:
cpu: 10m
memory: 20Mi
csiResizer:
limits:
memory: 400Mi
requests:
cpu: 10m
memory: 20Mi
csiSnapshotter:
limits:
memory: 200Mi
requests:
cpu: 10m
memory: 20Mi
livenessProbe:
limits:
memory: 100Mi
requests:
cpu: 10m
memory: 20Mi
nfs:
limits:
memory: 200Mi
requests:
cpu: 10m
memory: 20Mi
node:
name: csi-nfs-node
dnsPolicy: ClusterFirstWithHostNet
maxUnavailable: 1
logLevel: 5
livenessProbe:
healthPort: 29653
affinity: {}
nodeSelector: {}
priorityClassName: system-cluster-critical
tolerations:
- operator: "Exists"
resources:
livenessProbe:
limits:
memory: 100Mi
requests:
cpu: 10m
memory: 20Mi
nodeDriverRegistrar:
limits:
memory: 100Mi
requests:
cpu: 10m
memory: 20Mi
nfs:
limits:
memory: 300Mi
requests:
cpu: 10m
memory: 20Mi
externalSnapshotter:
enabled: false
name: snapshot-controller
priorityClassName: system-cluster-critical
deletionPolicy: Delete
controller:
replicas: 1
resources:
limits:
memory: 300Mi
requests:
cpu: 10m
memory: 20Mi
customResourceDefinitions:
enabled: true
volumeSnapshotClass:
create: false
name: csi-nfs-snapclass
deletionPolicy: Delete
imagePullSecrets: []
storageClass:
create: true
name: nfs-csi
parameters:
server: 172.16.8.99
share: /my-nfs
mountPermissions: "0"
reclaimPolicy: Delete
volumeBindingMode: Immediate
mountOptions:
- nfsvers=4.1
- noresvport
- soft
- timeo=50
安装
helm -n nfs-csi install nfs-csi csi-driver-nfs-4.11.0.tgz -f values.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: nfs-csi
---
kind: Pod
apiVersion: v1
metadata:
name: nginx-smb
namespace: default
spec:
containers:
- image: mcr.microsoft.com/oss/nginx/nginx:1.17.3-alpine
name: nginx-smb
command:
- "/bin/sh"
- "-c"
- while true; do echo $(date) >> /mnt/nfs/outfile; sleep 1; done
volumeMounts:
- name: smb01
mountPath: "/mnt/nfs"
readOnly: false
volumes:
- name: smb01
persistentVolumeClaim:
claimName: nfs-pvc