Creazione di una memorizzazione file system persistente mediante un file system esistente
In Compute Cloud@Customer, puoi eseguire il provisioning di un PVC su un file system esistente.
Questa procedura crea un'esportazione di destinazione di accesso, file system e file system. Quindi utilizza il comando kubectl
per creare la classe di storage, il volume persistente e la richiesta di volume persistente.
-
Creare una destinazione di accesso.
Per istruzioni, vedere Creazione di una destinazione di accesso.
Importante
Per assicurarsi che la destinazione di accesso possa essere raggiunta dai nodi di lavoro, creare la destinazione di accesso nella subnet che dispone della subnet di lavoro descritta in Creazione di risorse di rete OKE. Assicurarsi che la porta TCP 2049 sul server NFS sia aperta in tale sottorete.
Prendere nota dell'OCID del set di esportazione e dell'OCID della destinazione di accesso. L'OCID del set di esportazione è necessario per creare l'esportazione del file system e l'OCID della destinazione di accesso è necessario per creare la classe di storage nei passi successivi.
È possibile avere una sola destinazione di accesso per ogni VCN.
-
Creare un file system.
Per le relative istruzioni, vedere Creazione di un file system.
Puoi creare un solo file system per ogni VCN. Puoi avere più classi di storage, volumi persistenti e richieste di volume persistenti per cluster e tutte condividono un unico NFS.
-
Crea un'esportazione del file system per associare la destinazione di accesso al file system.
Per istruzioni, vedere Creazione di un'esportazione per un file system.
-
Specificare l'OCID del set di esportazione dall'output della creazione della destinazione di accesso.
-
Specificare il CIDR più lungo (rete più piccola) nell'intervallo CIDR specificato quando è stata creata la subnet "worker" come descritto in Creazione di risorse di rete OKE.
Prendere nota del percorso di esportazione e dell'indirizzo IP della destinazione di accesso.
-
-
Creare una classe di storage, specificando l'OCID della destinazione di accesso dall'output del passo di creazione della destinazione di accesso.
$ kubectl create -f sc.yaml
Di seguito è riportato il contenuto del file
sc.yaml
.kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: pca-fss provisioner: fss.csi.oraclecloud.com parameters: mntTargetId: ocid1.mounttarget.unique_ID
I valori delle proprietà
apiVersion
eprovisioner
sono standard. Il valore del nome della classe di memorizzazione nella sezione dei metadati è specificato dall'utente. È possibile creare più classi di storage per ogni destinazione di accesso e il nome della classe di storage viene utilizzato nei passi riportati di seguito per creare un volume persistente e una richiesta di volume persistente.Utilizzare il comando secondario
get sc
per visualizzare le informazioni sulla nuova classe di memorizzazione:$ kubectl get sc
-
Creare un volume persistente, specificando il nome della classe di storage, il percorso di esportazione e l'indirizzo IP della destinazione di accesso.
Il nome della classe di memorizzazione si trova nei metadati del file
sc.yaml
nel passo precedente. Il percorso di esportazione e l'indirizzo IP della destinazione di accesso vengono restituiti dal passo di esportazione Crea file system. Vedere il punto 3 sopra.$ kubectl create -f pv.yaml
Di seguito è riportato il contenuto del file
pv.yaml
.apiVersion: v1 kind: PersistentVolume metadata: name: fss-pv spec: storageClassName: pca-fss capacity: storage: 200Gi accessModes: - ReadWriteMany mountOptions: - nosuid nfs: server: mount_target_IP_address path: "/export/unique_ID" readOnly: false
Il nome del volume persistente nella sezione
metadata
è specificato dall'utente. È possibile avere più volumi persistenti in una classe di storage.Nella sezione
nfs
, il valoreserver
è l'indirizzo IP della destinazione di accesso e il valorepath
è il percorso di esportazione.Utilizzare il comando secondario
get pv
per visualizzare le informazioni sul nuovo volume persistente:$ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE fss-pv 200Gi RWX Retain Bound default/fss-pvc pca-fss 20h
-
Creare una richiesta di volume persistente, specificando il nome del volume persistente e il nome della classe di storage.
Il nome del volume persistente e il nome della classe di memorizzazione si trovano nell'output del comando
get pv
.Attendere che lo stato del PVC sia Limitato prima di utilizzare questa memoria.
kubectl create -f pvc.yaml
Di seguito è riportato il contenuto del file
pvc.yaml
.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: fss-pvc spec: storageClassName: pca-fss accessModes: - ReadWriteMany resources: requests: storage: 200Gi volumeName: fss-pv
Il nome richiesta volume persistente nella sezione
metadata
è specificato dall'utente. È possibile avere più richieste di volume persistenti su un volume persistente.Il valore della proprietà
accessModes
deve essereReadWriteMany
.Il valore della proprietà
storage
deve essere di almeno 50 gigabyte.Eseguire il comando seguente per visualizzare informazioni sulla nuova richiesta di volume persistente:
$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE fss-pvc Bound fss-pv 200Gi RWX pca-fss 2h
-
Utilizzare il PVC quando si creano altri oggetti, come i baccelli.
Ad esempio, è possibile creare un nuovo pod dalla seguente definizione di pod, che indica al sistema di utilizzare il PVC
fss-pvc
come volumenginx
, montato dal pod all'indirizzo/persistent-storage
:apiVersion: v1 kind: Pod metadata: name: fss-dynamic-app spec: containers: - name: nginx image: nginx:latest ports: - name: http containerPort: 80 volumeMounts: - name: persistent-storage mountPath: /usr/share/nginx/html volumes: - name: persistent-storage persistentVolumeClaim: claimName: fss-pvc
Eseguire il comando seguente per verificare che il pod utilizzi il nuovo PVC:
$ kubectl describe pod fss-dynamic-app