Provisioning dei PVC nello storage di file con Lustre Service
Scopri come eseguire il provisioning delle richieste di volume persistenti per i cluster creati utilizzando Kubernetes Engine (OKE) eseguendo il MOUNT dei file system dallo storage di file con il servizio Lustre.
Il servizio Oracle Cloud Infrastructure File Storage with Lustre è un servizio di storage completamente gestito progettato per soddisfare le esigenze di formazione e inferenza AI/ML e di elaborazione ad alte prestazioni. Il plugin Lustre CSI consente di connettere i cluster ai file system nello storage di file con il servizio Lustre.
Puoi utilizzare il servizio Storage di file con Lustre per eseguire il provisioning delle richieste di volume persistenti (PVC) in due modi:
- Definendo e creando una nuova classe di storage, quindi definendo e creando un PVC che fa riferimento a tale classe di storage. Quando si crea il PVC, il plugin Lustre CSI crea dinamicamente sia un nuovo file system Lustre che un nuovo volume persistente supportato dal nuovo file system. Vedere Provisioning di un PVC su un nuovo file system Lustre File System mediante il plugin volume CSI.
- Creando manualmente un file system nello storage di file con il servizio Lustre, definendo e creando un volume persistente (PV) supportato dal nuovo file system e infine definendo un nuovo PVC. Quando crei il PVC, Kubernetes Engine lega il PVC al PV supportato dal servizio File Storage con Lustre. See Provisioning a PVC on an Existing Lustre File System
Il driver Lustre CSI è il software complessivo che consente di utilizzare i file system Lustre con Kubernetes tramite l'interfaccia CSI (Container Storage Interface). Il plugin Lustre CSI è un componente specifico all'interno del driver, responsabile dell'interazione con il server API Kubernetes e della gestione del ciclo di vita dei volumi Lustre.
Tenere presente quanto riportato di seguito.
- Quando si utilizza il plugin Lustre CSI per creare dinamicamente un nuovo file system, non aggiornare o eliminare manualmente il volume persistente o gli oggetti del file system Lustre creati dal plugin CSI.
- Tutti i file system Lustre creati dinamicamente dal plugin volume CSI vengono dati nomi che iniziano con
csi-lustre-. - Tutti i file system Lustre creati dinamicamente dal plugin del volume CSI vengono visualizzati nella console. Tuttavia, non utilizzare la console (o l'interfaccia CLI o l'API di Oracle Cloud Infrastructure) per modificare queste risorse create dinamicamente. Le modifiche apportate alle risorse Oracle Cloud Infrastructure create dinamicamente dal plugin del volume CSI non vengono riconciliate con gli oggetti Kubernetes.
- Alcune funzioni avanzate, come l'espansione del volume, lo snapshot e la copia, non sono attualmente disponibili per i file system Lustre con provisioning dinamico.
- Se si elimina un PVC associato a un PV supportato da un file system creato dal plugin del volume CSI e il criterio di recupero è impostato su Elimina, vengono eliminati sia il file system PV che il file system Lustre. Se il criterio di recupero è Conserva, il PV non viene eliminato.
- L'uso del driver Lustre CSI per eseguire il provisioning di un PVC su un file system Lustre creato in modo dinamico è supportato su cluster creati da Kubernetes Engine che eseguono Kubernetes versione 1.32 o successiva. L'utilizzo del driver Lustre CSI per eseguire il provisioning di un PVC su un file system Lustre esistente è supportato sui cluster creati da Kubernetes Engine su cui è in esecuzione Kubernetes versione 1.29 o successiva.
- Il driver Lustre CSI è supportato su Oracle Linux 8 x86 e su Ubuntu x86 22.04.
- Per utilizzare un file system Lustre con un cluster creato da Kubernetes Engine, il pacchetto client Lustre deve essere installato sui nodi di lavoro che devono eseguire il MOUNT del file system. Per maggiori informazioni sui client Lustre, vedere Mounting and Accessing a Lustre File System.
- I dati vengono cifrati al momento dell'archiviazione, utilizzando chiavi di cifratura gestite personalmente da Oracle o da Voi.
- Oracle Cloud Infrastructure File Storage with Lustre è disponibile solo nelle aree mostrate nella disponibilità nella documentazione di File Storage with Lustre.
Provisioning a PVC on a New Lustre File System Using the CSI Volume Plugin
Quando si esegue il provisioning di un PVC su un nuovo file system Lustre creato dinamicamente dal plugin volume CSI, vengono applicati i prerequisiti riportati di seguito.
- Per eseguire il provisioning di un PVC in un nuovo file system creato dinamicamente dal plugin volume CSI, i cluster devono eseguire Kubernetes 1.32 o versioni successive.
-
Per consentire al plugin del volume CSI di creare e gestire le risorse Lustre, devono esistere criteri IAM appropriati. Ad esempio:
ALLOW any-user to manage lustre-file-family in compartment <compartment-name> where request.principal.type = 'cluster' ALLOW any-user to use virtual-network-family in compartment <compartment-name> where request.principal.type = 'cluster' -
Se il compartimento a cui appartiene un pool di nodi, una subnet o un file system è diverso dal compartimento a cui appartiene un cluster, devono esistere criteri IAM per consentire al plugin del volume CSI di accedere alla posizione appropriata. Ad esempio:
ALLOW any-user to manage lustre-file-family in TENANCY where request.principal.type = 'cluster'ALLOW any-user to use virtual-network-family in TENANCY where request.principal.type = 'cluster' -
Per specificare una determinata chiave di cifratura master gestita dall'utente dal servizio Vault per cifrare i dati in archivio, è necessario che esistano criteri IAM appropriati per consentire al servizio Storage di file con Lustre di accedere a tale chiave di cifratura master. Vedere Updating File System Encryption.
- Il pacchetto client Lustre deve essere installato su tutti i nodi di lavoro che devono montare il file system Lustre.
Per eseguire dinamicamente il provisioning di un PVC su un nuovo file system Lustre creato dinamicamente dal plugin volume CSI nel servizio di storage di file con Lustre:
- Creare regole di sicurezza in un gruppo di sicurezza di rete (consigliato) o in una lista di sicurezza sia per il file system Lustre che per la subnet dei nodi di lavoro del cluster.
Le regole di sicurezza da creare dipendono dalle posizioni di rete relative del file system Lustre e dai nodi di lavoro che fungono da client, in base agli scenari riportati di seguito.
Questi scenari, le regole di sicurezza da creare e la posizione in cui crearli, sono descritti completamente nella documentazione del servizio Storage di file con Lustre (vedere Regole di sicurezza VCN obbligatorie).
- Definire una nuova classe di storage che utilizza il provisioning
lustre.csi.oraclecloud.com:- Creare un file manifesto (ad esempio, in un file denominato lustre-dyn-st-class.yaml), specificare un nome per la nuova classe di memorizzazione e specificare i valori per i parametri obbligatori e facoltativi:
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: <storage-class-name> provisioner: lustre.csi.oraclecloud.com parameters: availabilityDomain: <ad-name> compartmentId: <compartment-ocid> # optional subnetId: <subnet-ocid> performanceTier: <value> fileSystemName: <name> # optional kmsKeyId: <key-ocid> # optional nsgIds: '["<nsg-ocid>"]' # optional rootSquashEnabled: "<true | false>" # optional rootSquashUid: "<value>" # optional rootSquashGid: "<value>" # optional rootSquashClientExceptions: '["<ip-address>"]' # optional oci.oraclecloud.com/initial-defined-tags-override: '{"<tag-namespace>": {"<tag-key>": "<tag-value>"}}' oci.oraclecloud.com/initial-freeform-tags-override: '{"<tag-key>": "<tag-value>"}' setupLnet: "<true | false>" # optional lustreSubnetCidr: "<cidr-block>" # optional lustrePostMountParameters: '[{"<parameter1>": <value>},{"<parameter2>": <value>}]' # optionalDove:
name: <storage-class-name>: obbligatorio. Nome scelto per la classe di storage.availabilityDomain: <ad-name>: obbligatorio. Nome del dominio di disponibilità in cui creare il nuovo file system Lustre. Ad esempio,availabilityDomain: US-ASHBURN-AD-1. Per individuare il nome del dominio di disponibilità da utilizzare, eseguire il comando CLIoci iam availability-domain listoppure utilizzare l'operazione ListAvailabilityDomains. Per ulteriori informazioni, vedere Nomi di dominio di disponibilità della tenancy.compartmentId: <compartment-ocid>: facoltativo. OCID del compartimento a cui deve appartenere il nuovo file system Lustre. Se non specificato, per impostazione predefinita viene utilizzato lo stesso compartimento del cluster. Ad esempio,compartmentId: ocid1.compartment.oc1..aaa______t6qsubnetId: <subnet-ocid>: obbligatorio. OCID della subnet in cui attivare il nuovo file system Lustre. Ad esempio,subnetId: ocid1.subnet.oc1.iad.aaaa______kfaperformanceTier: <value>: obbligatorio. Livello di prestazioni del file system Lustre. Valori consentiti:MBPS_PER_TB_125MBPS_PER_TB_250MBPS_PER_TB_500MBPS_PER_TB_1000
fileSystemName: <name>: facoltativo. Il nome del file system Lustre, fino a 8 caratteri. Se non specificato, verrà generato e utilizzato in modo casuale un valore predefinito. Ad esempio,fileSystemName: aiworkfskmsKeyId: <key-ocid>: facoltativo. OCID di una chiave di cifratura master gestita dall'utente, con cui cifrare i dati archiviati. Se non specificato, i dati vengono cifrati in archivio utilizzando chiavi di cifratura gestite da Oracle. Ad esempio,kmsKeyId: ocid1.key.oc1.iad.ann______usjnsgIds: '["<nsg-ocid>"]': facoltativo. Array JSON di un massimo di cinque OCID del gruppo di sicurezza di rete da associare al file system Lustre. Ad esempio,nsgIds: '["ocid1.nsg.oc1.iad.aab______fea"]'rootSquashEnabled: "<true | false>": facoltativo. Impostare sutrueper limitare l'accesso root ai client. L'impostazione predefinita èfalse.rootSquashUid: "<value>": facoltativo. Quando l'opzione Squash radice è abilitata, le operazioni radice vengono mappate a questo UID. L'impostazione predefinita è65534.rootSquashGid: "<value>": facoltativo. Quando l'opzione Squash radice è abilitata, le operazioni radice vengono mappate a questo GID. L'impostazione predefinita è65534.rootSquashClientExceptions: '["<ip-address>"]': facoltativo. Array JSON di indirizzi IP o blocchi CIDR non soggetti a zucca radice (massimo 10 voci). Ad esempio,rootSquashClientExceptions: '["10.0.2.4"]'.oci.oraclecloud.com/initial-defined-tags-override: '{"<tag-namespace>": {"<tag-key>": "<tag-value>"}}'Facoltativo. Specifica una tag definita per il nuovo file system. Ad esempio,oci.oraclecloud.com/initial-defined-tags-override: '{"Org": {"CostCenter": "AI"}}'Tenere presente che per applicare tag definite da uno spazio di nomi tag appartenente a un compartimento a una risorsa del file system appartenente a un compartimento diverso, è necessario includere un'istruzione criterio per consentire al cluster di utilizzare lo spazio di nomi tag. Vedere Criteri IAM aggiuntivi quando un cluster e uno spazio di nomi tag si trovano in compartimenti diversi.
oci.oraclecloud.com/initial-freeform-tags-override: '{"<tag-key>": "<tag-value>"}'Facoltativo. Specifica un tag in formato libero per il nuovo file system. Ad esempio,oci.oraclecloud.com/initial-freeform-tags-override: '{"Project": "ML"}'setupLnet: "<true | false>": facoltativo. Impostare sutruese il driver Lustre CSI deve eseguire l'impostazione della rete Lustre (LNet) prima dell'attivazione. Si consiglia di includere il parametrosetupLnete impostarlo su"true".lustreSubnetCidr: "<cidr-block>": facoltativo. Impostare l'intervallo di rete di origine del nodo di lavoro utilizzato per il traffico Lustre:- Quando utilizzare: specificare un intervallo di rete solo se i nodi di lavoro utilizzano una VNIC secondaria per connettersi al file system Lustre. Questo CIDR deve corrispondere al blocco della subnet di tale VNIC secondaria (ad esempio,
10.0.2.0/24). - Quando omettere: non specificare un intervallo di rete se i nodi di lavoro utilizzano la VNIC primaria (l'interfaccia predefinita) per la connettività Lustre.
- Importante: questo parametro è diverso dal parametro
subnetIddel file system Lustre, che definisce la posizione del file system Lustre stesso.
- Quando utilizzare: specificare un intervallo di rete solo se i nodi di lavoro utilizzano una VNIC secondaria per connettersi al file system Lustre. Questo CIDR deve corrispondere al blocco della subnet di tale VNIC secondaria (ad esempio,
lustrePostMountParameters: '[{"<parameter1>": <value>},{"<parameter2>": <value>}]': facoltativo. Array JSON di parametri client Lustre avanzati da impostare dopo il MOUNT. Ad esempio,lustrePostMountParameters: '[{"*.*.*MDT*.lru_size": 11200},{"at_history": 600}]'
Ad esempio:
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: lustre-dyn-storage provisioner: lustre.csi.oraclecloud.com parameters: availabilityDomain: US-ASHBURN-AD-1 compartmentId: ocid1.compartment.oc1..aaa______t6q # optional subnetId: ocid1.subnet.oc1.iad.aaaa______kfa performanceTier: MBPS_PER_TB_250 fileSystemName: aiworkfs # optional kmsKeyId: ocid1.key.oc1.iad.ann______usj # optional nsgIds: '["ocid1.nsg.oc1.iad.aab______fea"]' # optional oci.oraclecloud.com/initial-defined-tags-override: '{"Org": {"CostCenter": "AI"}}' oci.oraclecloud.com/initial-freeform-tags-override: '{"Project": "ML"}' setupLnet: "true" # optional - Creare la classe di memorizzazione dal file manifesto immettendo:
kubectl create -f <filename>Ad esempio:
kubectl create -f lustre-dyn-st-class.yaml
- Creare un file manifesto (ad esempio, in un file denominato lustre-dyn-st-class.yaml), specificare un nome per la nuova classe di memorizzazione e specificare i valori per i parametri obbligatori e facoltativi:
- Creare un PVC di cui eseguire il provisioning dal nuovo file system nello storage di file con il servizio Lustre, come indicato di seguito.
- Creare un file manifesto per definire il PVC:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc-name> spec: accessModes: - <ReadWriteMany|ReadOnlyOncePod> storageClassName: "<storage-class-name>" resources: requests: storage: <capacity>dove:
-
name: <pvc-name>: obbligatorio. Ad esempio,lustre-dynamic-claim -
storageClassName: "<storage-class-name>": obbligatorio. Nome della classe di storage definita in precedenza. Ad esempio,lustre-dyn-storage. -
accessModes: - <ReadWriteMany|ReadOnlyOncePod>: obbligatorio. Specifica la modalità di attivazione e condivisione del file system da parte dei pod. Attualmente sono supportatiReadWriteManyeReadOnlyOncePod. Ad esempio,ReadWriteMany. -
storage: <capacity>: obbligatorio. Questo valore deve essere almeno31.2T(o31200G). È possibile specificare una capacità maggiore, ma è necessario utilizzare incrementi particolari che dipendono dalla capacità (vedere Aumento della capacità del file system). Ad esempio,31.2T.
Ad esempio, il file manifesto seguente (denominato
lustre-dyn-claim.yaml) definisce un PVC denominatolustre-dynamic-claimdi cui viene eseguito il provisioning dal file system definito nella classe di memorizzazionelustre-dyn-storage:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: lustre-dynamic-claim spec: accessModes: - ReadWriteMany storageClassName: "lustre-dyn-storage" resources: requests: storage: 31.2T -
- Creare il PVC dal file manifesto inserendo:
kubectl create -f <filename>Ad esempio:kubectl create -f lustre-dyn-claim.yaml
Viene creato un nuovo PVC. Il plugin volume CSI crea un nuovo volume persistente (PV) e un nuovo file system nello storage di file con il servizio Lustre. Si noti che la creazione di un nuovo file system Lustre richiede almeno 10 minuti e può richiedere più tempo, a seconda delle dimensioni del file system. Utilizzare la console o l'interfaccia CLI per confermare la creazione del nuovo file system Lustre (vedere Elenco dei file system).
Il nuovo PVC è legato al nuovo PV. I dati vengono cifrati al momento dell'archiviazione, utilizzando chiavi di cifratura gestite personalmente da Oracle o da Voi.
- Creare un file manifesto per definire il PVC:
-
Verificare che il PVC sia stato legato al nuovo volume persistente inserendo:
kubectl get pvcOutput di esempio:
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE lustre-dynamic-claim Bound csi-lustre-<unique_ID> 30468750000Ki RWX lustre-dyn-storage 4m -
Utilizzare il nuovo PVC quando si creano altri oggetti, ad esempio i pod. Ad esempio, è possibile creare un nuovo pod dalla seguente definizione di pod:
apiVersion: v1 kind: Pod metadata: name: lustre-dynamic-app spec: containers: - name: aiworkload image: busybox:latest command: ["sleep", "3600"] volumeMounts: - name: lustre-vol mountPath: /mnt/lustre volumes: - name: lustre-vol persistentVolumeClaim: claimName: lustre-dynamic-claim -
Dopo aver creato un nuovo pod come descritto nell'esempio nel passo precedente, è possibile verificare che il pod stia utilizzando il nuovo PVC inserendo:
kubectl describe pod lustre-dynamic-app
Se prevedi un requisito frequente di creare in modo dinamico nuovi PV e nuovi filesystem quando crei PVC, puoi specificare che la nuova classe di storage che hai creato deve essere utilizzata come classe di storage predefinita per il provisioning di nuovi PVC. Per maggiori dettagli, vedere la documentazione di Kubernetes.
Cifratura dei dati in archivio su un nuovo file system Lustre File System
Lo storage di file con il servizio Lustre esegue sempre la cifratura dei dati in archivio, utilizzando le chiavi di cifratura gestite da Oracle per impostazione predefinita. Tuttavia, hai la possibilità di specificare la cifratura in archivio utilizzando le tue chiavi di cifratura master che gestisci tu stesso nel servizio Vault.
A seconda di come si desidera cifrare i dati in archivio, seguire le istruzioni appropriate riportate di seguito.
- Per utilizzare il plugin del volume CSI per creare in modo dinamico un nuovo file system Lustre che utilizza chiavi di cifratura gestite da Oracle per cifrare i dati archiviati, attenersi alla procedura descritta in Provisioning a PVC on a New Lustre File System Using the CSI Volume Plugin e non includere il parametro
kmsKeyId: <key-ocid>nella definizione della classe di memorizzazione. I dati vengono cifrati in archivio utilizzando chiavi di cifratura gestite da Oracle. - To use the CSI volume plugin to dynamically create a new Lustre file system that uses master encryption keys that you manage to encrypt data at rest, follow the steps in Provisioning a PVC on a New Lustre File System Using the CSI Volume Plugin, include the
kmsKeyId: <key-ocid>parameter in the storage class definition, and specify the OCID of the master encryption key in the Vault service. I dati vengono cifrati in archivio utilizzando la chiave di cifratura specificata.
Provisioning a PVC on an Existing Lustre File System
Per creare un PVC su un file system esistente nello storage di file con il servizio Lustre (utilizzando chiavi di cifratura gestite da Oracle per cifrare i dati in archivio):
- Creare un file system nello storage di file con il servizio Lustre, selezionando l'opzione di cifratura Encrypt using Oracle-managed keys. Vedere Creating a Lustre File System.
- Creare regole di sicurezza in un gruppo di sicurezza di rete (consigliato) o in una lista di sicurezza sia per il file system Lustre che per la subnet dei nodi di lavoro del cluster.Le regole di sicurezza da creare dipendono dalle posizioni di rete relative del file system Lustre e dai nodi di lavoro che fungono da client, secondo i seguenti scenari:
Questi scenari, le regole di sicurezza da creare e dove crearle, sono descritti nella documentazione del servizio Lustre relativa allo storage di file (vedere Regole di sicurezza VCN obbligatorie).
- Creare un PV supportato dal file system nello storage di file con il servizio Lustre come indicato di seguito.
-
Creare un file manifesto per definire un PV e, nella sezione
csi:, impostare:-
Da
driveralustre.csi.oraclecloud.com -
Da
volumeHandlea<MGSAddress>@<LNetName>:/<MountName>dove:
-
<MGSAddress>è l'indirizzo del servizio di gestione per il file system nello storage di file con il servizio Lustre -
<LNetName>è il nome di rete LNet per il file system nello storage di file con il servizio Lustre. -
<MountName>è il nome di accesso utilizzato durante la creazione del file system nello storage di file con il servizio Lustre.
Ad esempio:
10.0.2.6@tcp:/testlustrefs -
-
Da
fsTypealustre - (facoltativo, ma consigliato) da
volumeAttributes.setupLneta"true"se si desidera che il driver Lustre CSI esegua l'impostazione lnet (Lustre Network) prima di eseguire il MOUNT del file system. - (facoltativo)
volumeAttributes.lustreSubnetCidrnell'intervallo di rete di origine del nodo di lavoro utilizzato per il traffico Lustre:- Quando utilizzare: specificare un intervallo di rete solo se i nodi di lavoro utilizzano una VNIC secondaria per connettersi al file system Lustre. Questo CIDR deve corrispondere al blocco della subnet di tale VNIC secondaria (ad esempio,
10.0.2.0/24). - Quando omettere: non specificare un intervallo di rete se i nodi di lavoro utilizzano la VNIC primaria (l'interfaccia predefinita) per la connettività Lustre.
- Importante: questo parametro è diverso dal parametro
subnetIddel file system Lustre, che definisce la posizione del file system Lustre stesso.
- Quando utilizzare: specificare un intervallo di rete solo se i nodi di lavoro utilizzano una VNIC secondaria per connettersi al file system Lustre. Questo CIDR deve corrispondere al blocco della subnet di tale VNIC secondaria (ad esempio,
- (facoltativo)
volumeAttributes.lustrePostMountParametersper impostare i parametri di Lustre. Ad esempio:... volumeAttributes: lustrePostMountParameters: '[{"*.*.*MDT*.lru_size": 11200},{"at_history" : 600}]'
Ad esempio, il seguente file manifesto (denominato lustre-PV-example.yaml) definisce un PV denominato
lustre-pv-examplesupportato da un file system Lustre:apiVersion: v1 kind: PersistentVolume metadata: name: lustre-pv-example spec: capacity: storage: 31.2T volumeMode: Filesystem accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain csi: driver: lustre.csi.oraclecloud.com volumeHandle: "10.0.2.6@tcp:/testlustrefs" fsType: lustre volumeAttributes: setupLnet: "true" -
Da
- Creare il PV dal file manifesto immettendo:
kubectl apply -f <filename>Ad esempio:
kubectl apply -f lustre-pv-example.yaml -
Verificare che il PV sia stato creato correttamente immettendo:
kubectl get pv <pv-name>Ad esempio:
kubectl get pv lustre-pv-exampleOutput di esempio:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE lustre-pv-example 30468750000Ki RWX Retain Bound 56m
-
- Creare un PVC fornito dal PV creato, come segue:
- Creare un file manifesto per definire il PVC e impostare:
-
Da
storageClassNamea""Si noti che è necessario specificare un valore vuoto perstorageClassName, anche se la classe di memorizzazione non è applicabile in caso di provisioning statico dello storage persistente. Se non si specifica un valore vuoto perstorageClassName, viene utilizzata la classe di memorizzazione predefinita (oci-bv), che causa un errore. -
volumeNameal nome del PV creato (ad esempio,lustre-pv-example)
Ad esempio, il seguente file manifesto (denominato lustre-PVC-example.yaml) definisce un PVC denominato
lustre-pvc-exampleche verrà associato a un PV denominatolustre-pv-example:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: lustre-pvc-example spec: accessModes: - ReadWriteMany storageClassName: "" volumeName: lustre-pv-example resources: requests: storage: 31.2TSi noti che l'elemento
requests: storage:deve essere presente nel file manifesto del PVC e che il relativo valore deve corrispondere al valore specificato per l'elementocapacity: storage:nel file manifesto del PV. A parte questo, il valore dell'elementorequests: storage:viene ignorato. -
Da
- Creare il PVC dal file manifesto immettendo:
kubectl apply -f <filename>Ad esempio:kubectl apply -f lustre-pvc-example.yaml -
Verificare che il PVC sia stato creato e associato al PV inserendo:
kubectl get pvc <pvc-name>Ad esempio:
kubectl get pvc lustre-pvc-exampleOutput di esempio:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lustre-pvc-example Bound lustre-pv-example 30468750000Ki RWX 57m
Il PVC è legato al PV supportato dallo storage di file con il file system di servizio Lustre. I dati vengono cifrati in archivio utilizzando le chiavi di cifratura gestite da Oracle.
- Creare un file manifesto per definire il PVC e impostare:
- Utilizzare il nuovo PVC quando si creano altri oggetti, ad esempio le distribuzioni. Ad esempio:
- Creare un file manifesto denominato lustre-app-example-deployment.yaml per definire una distribuzione denominata
lustre-app-example-deploymentche utilizza il PVClustre-pvc-example, come indicato di seguito.apiVersion: apps/v1 kind: Deployment metadata: name: lustre-app-example-deployment spec: selector: matchLabels: app: lustre-app-example replicas: 2 template: metadata: labels: app: lustre-app-example spec: containers: - args: - -c - while true; do echo $(date -u) >> /lustre/data/out.txt; sleep 60; done command: - /bin/sh image: busybox:latest imagePullPolicy: Always name: lustre-app-example volumeMounts: - mountPath: /lustre/data name: lustre-volume restartPolicy: Always volumes: - name: lustre-volume persistentVolumeClaim: claimName: lustre-pvc-example - Creare la distribuzione dal file manifest immettendo:
kubectl apply -f lustre-app-example-deployment.yaml - Verificare che i pod di distribuzione siano stati creati correttamente e siano in esecuzione immettendo:
kubectl get podsOutput di esempio:
NAME READY STATUS RESTARTS AGE lustre-app-example-deployment-7767fdff86-nd75n 1/1 Running 0 8h lustre-app-example-deployment-7767fdff86-wmxlh 1/1 Running 0 8h
- Creare un file manifesto denominato lustre-app-example-deployment.yaml per definire una distribuzione denominata
Fornitura di un PVC su un Lustre File System esistente con opzioni di montaggio
È possibile ottimizzare le prestazioni e controllare l'accesso a un file system Lustre esistente specificando le opzioni di montaggio per il PV. La specifica delle opzioni di attivazione consente di ottimizzare le modalità di interazione dei pod con il file system.
Per includere le opzioni di attivazione, procedere come segue.
- Start by following the instructions in Provisioning a PVC on an Existing Lustre File System.
- Nel file manifesto PV descritto in Provisioning a PVC on an Existing Lustre File System, aggiungere il campo
spec.mountOptions, che consente di specificare come il PV deve essere montato dai pod.For example, in the lustre-pv-example.yaml manifest file shown in Provisioning a PVC on an Existing Lustre File System, you can include the
mountOptionsfield as follows:apiVersion: v1 kind: PersistentVolume metadata: name: lustre-pv-example spec: capacity: storage: 31.2T volumeMode: Filesystem accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain mountOptions: - ro csi: driver: lustre.csi.oraclecloud.com volumeHandle: "10.0.2.6@tcp:/testlustrefs" fsType: lustre volumeAttributes: setupLnet: "true"In questo esempio, il campo
mountOptionsviene impostato suro, a indicare che i pod devono disporre dell'accesso in sola lettura al file system. Per ulteriori informazioni sulle opzioni di montaggio PV, vedere Volumi persistenti nella documentazione di Kubernetes.
Encrypting Data At Rest on an Existing Lustre File System
Il servizio Storage di file con Lustre cifra sempre i dati archiviati utilizzando le chiavi di cifratura gestite da Oracle per impostazione predefinita. Tuttavia, hai la possibilità di specificare la cifratura in archivio utilizzando le tue chiavi di cifratura master che gestisci tu stesso nel servizio Vault.
Per ulteriori informazioni sullo storage di file con file system Lustre che utilizzano chiavi di cifratura gestite da Oracle o le proprie chiavi di cifratura master gestite personalmente, vedere Aggiornamento della cifratura del file system.