User Tools

Site Tools


container:kubernetes:nfs_provisioner

This is an old revision of the document!


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.

NFS Storage Provider via Kubernetes installieren

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
container/kubernetes/nfs_provisioner.1610448226.txt.gz · Last modified: by stone