====== 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