📖 Tempo estimado de leitura: 2 min
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 rapidamente.
O provisionador é responsável por fornecer um serviço de cliente NFS que dará ao OpenShift acesso a volumes compartilhados de um servidor NFS.
$ 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
$ NAMESPACE=`oc project -q`
$ sed -i '' "s/namespace:.*/namespace: $NAMESPACE/g" ./deploy/rbac.yaml
$ sed -i '' "s/namespace:.*/namespace: $NAMESPACE/g" ./deploy/deployment.yaml
$ oc create -f deploy/rbac.yaml
$ oc adm policy add-scc-to-user hostmount-anyuid system:serviceaccount:$NAMESPACE:nfs-client-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
YOUR_NFS_SERVER_IP_OR_FQDN
pelo endereço do seu servidor NFS.$ cat > deploy/class.yaml << EOF
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: managed-nfs-storage
provisioner: slow
parameters:
archiveOnDelete: "false"
EOF
$ oc create -f deploy/class.yaml
$ oc create -f deploy/deployment.yaml
$ 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
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
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! 🔥
Gostou do que encontrou aqui? A cada clique em um banner, você ajuda a manter este site vivo e gratuito. Seu apoio faz toda a diferença para que possamos continuar trazendo conteúdos que você adora. Muito obrigado! 😊