====== NFS Subdir External Provisioner ======Dazu wird ein NFS Server benötigt. Ich gehe hier davon aus das es diese schon gibt und die Master/Worker darauf zugreifen können.
ACHTUNG! → Ich hatte immer wieder Probleme wenn der NFS Server auch NFSv4 anbietet. Wenn man also keine bestimmten NFSv4 Funktionen benötigt würde ich NFSv3 empfehlen.
Die nötigen Yaml Files runter laden
wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/raw/master/deploy/rbac.yaml wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/raw/master/deploy/class.yaml wget https://raw.githubusercontent.com/kubernetes-sigs/nfs-subdir-external-provisioner/master/deploy/deployment.yaml Für ARM wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/blob/master/deploy/deployment-arm.yaml
Es muss das File deployment.yaml oder deployment-arm.yaml angepasst werden.
..
...
env:
- name: PROVISIONER_NAME
value: fuseim.pri/ifs
- name: NFS_SERVER
value: <IP or FQDN>
- name: NFS_PATH
value: <NFS EXPORT PATH>
volumes:
- name: nfs-client-root
nfs:
server: <IP or FQDN>
path: <NFS EXPORT PATH>
...
..
kubectl create -f rbac.yaml kubectl create -f deployment.yaml kubectl create -f class.yaml
root@kube01:~/nfs# kubectl get storageclasses.storage.k8s.io NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE local-path (default) rancher.io/local-path Delete WaitForFirstConsumer false 2d6h managed-nfs-storage fuseim.pri/ifs Delete Immediate false 2d5h
kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
kubectl patch storageclass managed-nfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
root@kube01:~# kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
local-path rancher.io/local-path Delete WaitForFirstConsumer false 16m
managed-nfs-storage (default) fuseim.pri/ifs Delete Immediate false 3m20s
Ich gehe davon aus Helm ist installiert und funktioniert
git clone https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner.git cd nfs-subdir-external-provisioner/deploy/helm/ helm install nfs-subdir-external-provisioner . --set nfs.server=x.x.x.x --set nfs.path=/exported/path