TL; DR È possibile condividere PV e PVC all'interno dello stesso progetto/spazio dei nomi per i volumi condivisi (nfs, gluster, ecc.), È inoltre possibile accedere al volume condiviso da più project/namespace ma richiede progetto dedicato PV e PVC, in quanto un fotovoltaico è legato al singolo progetto/spazio dei nomi e il PVC è progetto/spazio dei nomi.
Di seguito ho cercato di illustrare il comportamento corrente e il modo in cui PV e PVC sono inclusi in OpenShift. Questi sono semplici esempi che utilizzano NFS come livello di archiviazione persistente.
gli accessModes a questo punto sono solo etichette, non hanno alcuna reale funzionalità in termini di controllo dell'accesso a PV. Di seguito sono riportati alcuni esempi per mostrare questo
il PV è globale nel senso che può essere visto/accesso da qualsiasi progetto/spazio dei nomi, tuttavia una volta che è legato a un progetto, può quindi essere accessibile solo da contenitori dal stesso progetto/namespace
il PVC è specifico del progetto/spazio dei nomi (quindi se si dispone di più progetti è necessario disporre di un nuovo PV e PVC per ogni progetto per connettersi al volume NFS condiviso - non è possibile riutilizzare il PV dal primo progetto)
Esempio 1:
ho 2 baccelli distinte in esecuzione in "default" progetto/NameSpa ce, entrambi con accesso alla stessa condivisione esportata PV e NFS. Entrambi montano e corrono bene.
[[email protected] nfs_error]# oc get pv
NAME LABELS CAPACITY ACCESSMODES STATUS CLAIM REASON AGE
pv-nfs <none> 1Gi RWO Bound default/nfs-claim 3m
[[email protected] nfs_error]# oc get pods <--- running from DEFAULT project, no issues connecting to PV
NAME READY STATUS RESTARTS AGE
nfs-bb-pod2-pvc 1/1 Running 0 11m
nfs-bb-pod3-pvc 1/1 Running 0 10m
Esempio 2:
Ho 2 baccelli distinte in esecuzione in "default" del progetto/spazio dei nomi e tentare di creare un altro pod utilizzando lo stesso PV ma da un nuovo progetto chiamato testproject
di accedere allo stesso esportazione NFS . Il terzo pod del nuovo testproject
non sarà in grado di collegarsi al PV poiché è già associato al progetto default
.
[[email protected] nfs_error]# oc get pv
NAME LABELS CAPACITY ACCESSMODES STATUS CLAIM REASON AGE
pv-nfs <none> 1Gi RWO Bound default/nfs-claim 3m
[[email protected] nfs_error]# oc get pods <--- running from DEFAULT project, no issues connecting to PV
NAME READY STATUS RESTARTS AGE
nfs-bb-pod2-pvc 1/1 Running 0 11m
nfs-bb-pod3-pvc 1/1 Running 0 10m
** Creare un nuovo credito nei confronti del fotovoltaico esistente da un altro progetto (TestProject) e il PVC non riuscirà
[[email protected] nfs_error]# oc get pvc
NAME LABELS STATUS VOLUME CAPACITY ACCESSMODES AGE
nfs-claim <none> Pending 2s
** nfs-reclamo sarà mai legarsi al PV PV-NFS perché non si può vedere dal suo attuale portata del progetto
Esempio 3:
ho 2 baccelli distinti in esecuzione in "default "progettare e quindi creare un altro PV e PVC e Pod da testproject
. Entrambi i progetti saranno in grado di accedere alla stessa quota esportata NFS ma ho bisogno di un PV e PVC in ciascuno dei progetti.
[[email protected] nfs_error]# oc get pv
NAME LABELS CAPACITY ACCESSMODES STATUS CLAIM REASON AGE
pv-nfs <none> 1Gi RWX Bound default/nfs-claim 14m
pv-nfs2 <none> 1Gi RWX Bound testproject/nfs-claim2 9m
[[email protected] nfs_error]# oc get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default nfs-bb-pod2-pvc 1/1 Running 0 11m
default nfs-bb-pod3-pvc 1/1 Running 0 11m
testproject nfs-bb-pod4-pvc 1/1 Running 0 15s
** preavviso, ora ho tre baccelli che funzionano allo stesso volume NFS condiviso tra due progetti, ma avevo bisogno di due fotovoltaici di come essi sono tenuti ad un unico progetto, e 2 del PVC, uno per ogni progetto e NFS PV sto cercando di accedere
Esempio 4:
Se io by-pass PV e PVC, posso collegare ai volumi NFS condivisi direttamente da qualsiasi progetto utilizzando le NFS il plugin direttamente
volumes:
- name: nfsvol
nfs:
path: /opt/data5
server: nfs1.rhs
Ora, la sicurezza del volume è un altro strato in cima a questo, utilizzando gruppi supplementari (per l'archiviazione condivisa, cioè nfs, gluster, ecc ...), gli amministratori e gli sviluppatori devono essere ulteriormente in grado di gestire e controllare l'accesso alla condivisione Sistema NFS.
Speranza che aiuta
Grazie questo aiuta assegnare. –
@DonovanMuller: Sto anche cercando di utilizzare lo stesso PV per più pod, funziona bene, ma penso che anche i dati siano condivisi tra i pod in questo caso. Qui la mia preoccupazione principale è se PV contiene diciamo 2 GB di dati, tutti i dati saranno disponibili per i pod che stanno usando questo PV, che è ciò che non vogliamo. Pod dovrebbe avere solo i suoi dati, non altri '. Ho fatto questa domanda anche qui http://stackoverflow.com/questions/36624034/openshift-persistent-volumes, ma nessuna risposta. Sarebbe molto utile se puoi chiarire questo. Grazie in anticipo! – priyank
@screenlay: apprezzerebbe anche i tuoi pensieri per la mia domanda precedente. grazie mille! – priyank