====== 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.
===== NFS Storage Provider via kubectl =====
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
\\
==== Anpassen der Files ====
Es muss das File deployment.yaml oder deployment-arm.yaml angepasst werden.
..
...
env:
- name: PROVISIONER_NAME
value: fuseim.pri/ifs
- name: NFS_SERVER
value:
- name: NFS_PATH
value:
volumes:
- name: nfs-client-root
nfs:
server:
path:
...
..
\\
==== Einspielen der Files ====
kubectl create -f rbac.yaml
kubectl create -f deployment.yaml
kubectl create -f class.yaml
\\
==== Storage Class anzeigen ====
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
\\
==== Default Storage Class ändern ====
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
\\
----
===== NFS Storage Provider via helm =====
Ich gehe davon aus Helm ist installiert und funktioniert \\
==== Installation ====
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