User Tools

Site Tools


container:kubernetes:nfs_provisioner

====== 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: <IP or FQDN>
            - name: NFS_PATH
              value: <NFS EXPORT PATH>
      volumes:
        - name: nfs-client-root
          nfs:
            server: <IP or FQDN>
            path: <NFS EXPORT 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
container/kubernetes/nfs_provisioner.txt · Last modified: by stone