preloader
  • Início
  • OpenShift NFS Storage Class

Volumes NFS para clusters OpenShift

blog-thumb

Você pode usar um servidor NFS existente para provisionamento dinâmico de Volumes persistentes do Kubernetes.

O provisionador externo de subdiretórios NFS funciona de forma automática e usa um servidor NFS já existente e configurado, para fornecer suporte ao provisionamento dinâmico de volumes persistentes do Kubernetes, por meio de solicitações de volumes persistentes.

Os volumes persistentes são provisionados como ${namespace}-${pvcName}-${pvName}.

Se você precisar de um servidor NFS, clique aqui para saber como implantar um.


Provedor externo de subdiretórios NFS

O provisionador é responsável por fornecer um serviço de cliente NFS que dará ao OpenShift acesso a volumes compartilhados de um servidor NFS.


Clone o repositório e crie o namespace
$ git clone https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner.git
$ cd nfs-subdir-external-provisioner
$ oc create namespace openshift-nfs-storage
$ oc label namespace openshift-nfs-storage "openshift.io/cluster-monitoring=true"
$ oc project openshift-nfs-storage

Substitua o namespace nos YAMLs
$ NAMESPACE=`oc project -q`
$ sed -i '' "s/namespace:.*/namespace: $NAMESPACE/g" ./deploy/rbac.yaml
$ sed -i '' "s/namespace:.*/namespace: $NAMESPACE/g" ./deploy/deployment.yaml

Security Context Constraints
$ oc create -f deploy/rbac.yaml
$ oc adm policy add-scc-to-user hostmount-anyuid system:serviceaccount:$NAMESPACE:nfs-client-provisioner

NFS Provisioner

O “PROVISIONER_NAME” deve ser "nfs".

Edite o arquivo "deploy/deployment.yaml" e altere:

De:

          env:
            - name: PROVISIONER_NAME
              value: fuseim.pri/ifs
            - name: NFS_SERVER
              value: 10.10.10.60
            - name: NFS_PATH
              value: /ifs/kubernetes
      volumes:
        - name: nfs-client-root
          nfs:
            server: 10.10.10.60
            path: /ifs/kubernetes

Para:

          env:
            - name: PROVISIONER_NAME
              value: nfs
            - name: NFS_SERVER
              value: YOUR_NFS_SERVER_IP_OR_FQDN
            - name: NFS_PATH
              value: /shares
      volumes:
        - name: nfs-client-root
          nfs:
            server: YOUR_NFS_SERVER_IP_OR_FQDN
            path: /shares
  • – Certifique-se de substituir YOUR_NFS_SERVER_IP_OR_FQDN pelo endereço do seu servidor NFS.


Atualizer a classe de armazenamento
$ cat > deploy/class.yaml << EOF
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: managed-nfs-storage
provisioner: slow
parameters:
  archiveOnDelete: "false"
EOF

Implementar o cliente OCP NFS
$ oc create -f deploy/class.yaml
$ oc create -f deploy/deployment.yaml

Security Context Constraints (novamente)
$ oc get deployment -n openshift-nfs-storage -o yaml | oc adm policy scc-subject-review -f -
$ oc -n openshift-nfs-storage adm policy add-scc-to-user hostmount-anyuid -z nfs-client-provisioner

Verificar a implantação
oc get all -n openshift-nfs-storage

NAME                                         READY   STATUS    RESTARTS   AGE
pod/nfs-client-provisioner-94d685f65-nhgl8   1/1     Running   0          87s

NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nfs-client-provisioner   1/1     1            1           87s

NAME                                               DESIRED   CURRENT   READY   AGE
replicaset.apps/nfs-client-provisioner-94d685f65   1         1         1       87s

Uso da classe de armazenamento NFS

Para usar o volume NFS, basta criar um PVC informando storageClassName managed-nfs-storage.

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: testing
  namespace: ProjectName
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: managed-nfs-storage
  volumeMode: Filesystem
oc get pvc
NAME      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS          AGE
testing   Bound    pvc-452aab67-c094-40ff-80f8-0e71313b2c75   1Gi        RWO            managed-nfs-storage   97s

Um PV será criado automaticamente, consumindo espaço no servidor NFS.

oc get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                             STORAGECLASS          REASON   AGE
pvc-452aab67-c094-40ff-80f8-0e71313b2c75   1Gi        RWO            Delete           Bound    ProjectName/testing                                managed-nfs-storage            2m34s

Isso foi muito fácil! 😃


Você gostou do conteúdo? Dê uma olhada nestes outros artigos interessantes! 🔥



Pode ajudar?

Por favor apóie este conteúdo clicando em um banner de nossos anunciantes. ❤️

comments powered by Disqus