Provisionnement des demandes de volume persistant sur le stockage de fichiers avec le service Lustre
Découvrez comment provisionner des demandes de volume persistant pour les clusters que vous avez créés à l'aide de Kubernetes Engine (OKE) en montant des systèmes de fichiers à partir du service File Storage avec Lustre.
Le service Oracle Cloud Infrastructure File Storage avec Lustre est un service de stockage entièrement géré conçu pour répondre aux exigences de la formation et de l'inférence en IA/ML, ainsi qu'aux besoins de calcul hautes performances. Vous utilisez le module d'extension CSI Lustre pour connecter des clusters à des systèmes de fichiers dans File Storage avec le service Lustre.
Vous pouvez utiliser le service File Storage with Lustre pour provisionner les demandes de volume persistant de deux manières :
- En définissant et en créant une nouvelle classe de stockage, puis en définissant et en créant une demande de volume persistant référençant cette classe de stockage. Lorsque vous créez la demande de volume persistant, le module d'extension Lustre CSI crée dynamiquement à la fois un nouveau système de fichiers Lustre et un nouveau volume persistant soutenu par le nouveau système de fichiers. See Provisioning a PVC on a New Lustre File System Using the CSI Volume Plugin.
- En créant manuellement un système de fichiers dans le service File Storage with Lustre, puis en définissant et en créant un volume persistant soutenu par le nouveau système de fichiers, et enfin en définissant une nouvelle demande de volume persistant. Lorsque vous créez la demande de volume persistant, Kubernetes Engine lie la demande de volume persistant au PV soutenu par le service File Storage with Lustre. See Provisioning a PVC on an Existing Lustre File System
Le pilote CSI de Lustre est le logiciel global qui permet aux systèmes de fichiers Lustre d'être utilisés avec Kubernetes via l'interface de stockage de conteneur (CSI). Le plugin CSI Lustre est un composant spécifique au sein du pilote, responsable de l'interaction avec le serveur d'API Kubernetes et de la gestion du cycle de vie des volumes Lustre.
Tenez compte des éléments suivants :
- Lorsque vous utilisez le module d'extension Lustre CSI pour créer dynamiquement un nouveau système de fichiers, ne mettez pas à jour ou ne supprimez pas manuellement le volume persistant ou les objets de système de fichiers Lustre créés par le module d'extension CSI.
- Tous les systèmes de fichiers Lustre créés dynamiquement par le module d'extension de volume CSI reçoivent des noms commençant par
csi-lustre-. - Tous les systèmes de fichiers Lustre créés dynamiquement par le module d'extension de volume CSI apparaissent dans la console. Toutefois, n'utilisez pas la console (ou l'interface de ligne de commande ou l'API Oracle Cloud Infrastructure) pour modifier ces ressources créées dynamiquement. Les modifications apportées aux ressources Oracle Cloud Infrastructure créées dynamiquement par le module d'extension de volume CSI ne sont pas rapprochées des objets Kubernetes.
- Certaines fonctionnalités avancées telles que l'extension de volume, les instantanés et les clones ne sont actuellement pas disponibles pour les systèmes de fichiers Lustre provisionnés dynamiquement.
- Si vous supprimez une demande de volume persistant liée à un PV soutenu par un système de fichiers créé par le module d'extension de volume CSI et que la stratégie de récupération est définie sur Supprimer, le PV et le système de fichiers Lustre sont supprimés. Si la stratégie de récupération est Conserver, le PV n'est pas supprimé.
- L'utilisation du pilote Lustre CSI pour provisionner une demande de volume persistant sur un système de fichiers Lustre créé dynamiquement est prise en charge sur les clusters créés par Kubernetes Engine qui exécutent Kubernetes version 1.32 ou ultérieure. L'utilisation du pilote Lustre CSI pour provisionner une demande de volume persistant sur un système de fichiers Lustre existant est prise en charge sur les clusters créés par Kubernetes Engine qui exécutent Kubernetes version 1.29 ou ultérieure.
- Le pilote CSI Lustre est pris en charge sur Oracle Linux 8 x86 et sur Ubuntu x86 22.04.
- Pour utiliser un système de fichiers Lustre avec un cluster créé par Kubernetes Engine, le package client Lustre doit être installé sur les noeuds de processus actif qui doivent monter le système de fichiers. Pour plus d'informations sur les clients Lustre, reportez-vous à la section Mounting and Accessing a Lustre File System.
- Les données sont cryptées lorsqu'elles sont inactives, à l'aide de clés de cryptage gérées par Oracle ou par vous.
- Oracle Cloud Infrastructure File Storage with Lustre n'est disponible que dans les régions indiquées dans la disponibilité de la documentation File Storage with Lustre.
Provisioning a PVC on a New Lustre File System Using the CSI Volume Plugin
Les prérequis suivants s'appliquent lors du provisionnement d'une demande de volume persistant sur un nouveau système de fichiers Lustre créé dynamiquement par le module d'extension de volume CSI :
- Les clusters doivent exécuter Kubernetes 1.32 ou une version ultérieure pour provisionner une demande de volume persistant sur un nouveau système de fichiers créé dynamiquement par le module d'extension de volume CSI.
-
Des stratégies IAM appropriées doivent exister pour permettre au module d'extension de volume CSI de créer et de gérer des ressources Lustre. Par exemple :
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' -
Si le compartiment auquel appartient un pool de noeuds, un sous-réseau ou un système de fichiers est différent du compartiment auquel appartient un cluster, des stratégies IAM doivent exister pour permettre au module d'extension de volume CSI d'accéder à l'emplacement approprié. Par exemple :
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' -
Pour indiquer une clé de cryptage maître gérée par l'utilisateur particulière à partir du service Vault afin de crypter les données au repos, des stratégies IAM appropriées doivent exister pour permettre au service File Storage with Lustre d'accéder à cette clé de cryptage maître. Reportez-vous à Mise à jour du cryptage de système de fichiers.
- Le package client Lustre doit être installé sur tous les noeuds de processus actifs qui doivent monter le système de fichiers Lustre.
Pour provisionner dynamiquement une demande de volume persistant sur un nouveau système de fichiers Lustre créé dynamiquement par le module d'extension de volume CSI dans le service File Storage with Lustre, procédez comme suit :
- Créez des règles de sécurité dans un groupe de sécurité réseau (recommandé) ou une liste de sécurité pour le système de fichiers Lustre et pour le sous-réseau de noeuds de processus actif du cluster.
Les règles de sécurité à créer dépendent des emplacements réseau relatifs du système de fichiers Lustre et des noeuds de processus actif qui agissent en tant que client, selon les scénarios suivants :
- Option 1 : Client et éclat dans différents sous-réseaux
- Option 2 : Client et éclat dans le même sous-réseau
Ces scénarios, les règles de sécurité à créer et l'emplacement où les créer, sont entièrement décrits dans la documentation du service File Storage with Lustre (reportez-vous à Règles de sécurité VCN requises).
- Définissez une nouvelle classe de stockage qui utilise le provisionnateur
lustre.csi.oraclecloud.com:- Créez un fichier manifeste (par exemple, dans un fichier nommé lustre-dyn-st-class.yaml), indiquez le nom de la nouvelle classe de stockage et indiquez les valeurs des paramètres obligatoires et facultatifs :
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>}]' # optionaloù :
name: <storage-class-name>: requis. Nom de votre choix pour la classe de stockage.availabilityDomain: <ad-name>: requis. Nom du domaine de disponibilité dans lequel créer le nouveau système de fichiers Lustre. Par exemple,availabilityDomain: US-ASHBURN-AD-1. Pour connaître le nom de domaine de disponibilité à utiliser, exécutez la commande d'interface de ligne de commandeoci iam availability-domain list(ou utilisez l'opération ListAvailabilityDomains). Pour plus d'informations, reportez-vous à Noms de domaine de disponibilité de votre location.compartmentId: <compartment-ocid>: facultatif. OCID du compartiment auquel le nouveau système de fichiers Lustre doit appartenir. Si aucune valeur n'est indiquée, le compartiment par défaut est le même que celui du cluster. Par exemple,compartmentId: ocid1.compartment.oc1..aaa______t6qsubnetId: <subnet-ocid>: requis. OCID du sous-réseau dans lequel monter le nouveau système de fichiers Lustre. Par exemple,subnetId: ocid1.subnet.oc1.iad.aaaa______kfaperformanceTier: <value>: requis. Niveau de performances du système de fichiers Lustre. Valeurs autorisées :MBPS_PER_TB_125MBPS_PER_TB_250MBPS_PER_TB_500MBPS_PER_TB_1000
fileSystemName: <name>: facultatif. Nom du système de fichiers Lustre, jusqu'à 8 caractères. Si aucune valeur n'est indiquée, une valeur par défaut est générée et utilisée de manière aléatoire. Par exemple,fileSystemName: aiworkfskmsKeyId: <key-ocid>: facultatif. OCID d'une clé de cryptage maître que vous gérez, avec laquelle crypter les données inactives. Si aucune valeur n'est indiquée, les données sont cryptées au repos à l'aide de clés de cryptage gérées par Oracle. Par exemple,kmsKeyId: ocid1.key.oc1.iad.ann______usjnsgIds: '["<nsg-ocid>"]': facultatif. Tableau JSON comprenant jusqu'à cinq OCID de groupe de sécurité réseau à associer au système de fichiers Lustre. Par exemple,nsgIds: '["ocid1.nsg.oc1.iad.aab______fea"]'rootSquashEnabled: "<true | false>": facultatif. Définissez la valeur surtruepour restreindre l'accès root aux clients. La valeur par défaut estfalse.rootSquashUid: "<value>": facultatif. Lorsque le squash root est activé, les opérations root sont mappées avec cet UID. La valeur par défaut est65534.rootSquashGid: "<value>": facultatif. Lorsque le squash root est activé, les opérations root sont mises en correspondance avec ce GID. Par défaut,65534est utilisé.rootSquashClientExceptions: '["<ip-address>"]': facultatif. Tableau JSON d'adresses IP ou de blocs CIDR qui ne sont pas soumis à la courbure racine (10 entrées maximum). Par exemple,rootSquashClientExceptions: '["10.0.2.4"]'.oci.oraclecloud.com/initial-defined-tags-override: '{"<tag-namespace>": {"<tag-key>": "<tag-value>"}}'Facultatif. Spécifie une balise définie pour le nouveau système de fichiers. Par exemple,oci.oraclecloud.com/initial-defined-tags-override: '{"Org": {"CostCenter": "AI"}}'Pour appliquer des balises définies à partir d'un espace de noms de balise appartenant à un compartiment à une ressource de système de fichiers appartenant à un autre compartiment, vous devez inclure une instruction de stratégie afin de permettre au cluster d'utiliser l'espace de noms de balise. Reportez-vous à Stratégie IAM supplémentaire lorsqu'un cluster et un espace de noms de balise se trouvent dans différents compartiments.
oci.oraclecloud.com/initial-freeform-tags-override: '{"<tag-key>": "<tag-value>"}'Facultatif. Spécifie une balise à format libre pour le nouveau système de fichiers. Par exemple,oci.oraclecloud.com/initial-freeform-tags-override: '{"Project": "ML"}'setupLnet: "<true | false>": facultatif. Définissez la valeur surtruesi le pilote CSI Lustre doit effectuer la configuration du réseau Lustre (LNet) avant le montage. Nous vous recommandons vivement d'inclure le paramètresetupLnetet de le définir sur"true".lustreSubnetCidr: "<cidr-block>": facultatif. Définissez la plage de réseau source du noeud de processus actif utilisée pour le trafic Lustre :- Quand utiliser : spécifiez uniquement une plage de réseau si les noeuds de processus actif utilisent une carte d'interface réseau virtuelle secondaire pour se connecter au système de fichiers Lustre. Ce CIDR doit correspondre au bloc de sous-réseau de cette carte d'interface réseau virtuelle secondaire (par exemple,
10.0.2.0/24). - A quel moment omettre : n'indiquez pas de plage réseau si les noeuds de processus actif utilisent leur carte d'interface réseau virtuelle principale (interface par défaut) pour la connectivité Lustre.
- Important : ce paramètre est différent du paramètre
subnetIddu système de fichiers Lustre, qui définit l'emplacement du système de fichiers Lustre lui-même.
- Quand utiliser : spécifiez uniquement une plage de réseau si les noeuds de processus actif utilisent une carte d'interface réseau virtuelle secondaire pour se connecter au système de fichiers Lustre. Ce CIDR doit correspondre au bloc de sous-réseau de cette carte d'interface réseau virtuelle secondaire (par exemple,
lustrePostMountParameters: '[{"<parameter1>": <value>},{"<parameter2>": <value>}]': facultatif. Tableau JSON de paramètres client Lustre avancés à définir après le montage. Par exemple,lustrePostMountParameters: '[{"*.*.*MDT*.lru_size": 11200},{"at_history": 600}]'
Par exemple :
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 - Créez la classe de stockage à partir du fichier manifeste en saisissant la commande suivante :
kubectl create -f <filename>Par exemple :
kubectl create -f lustre-dyn-st-class.yaml
- Créez un fichier manifeste (par exemple, dans un fichier nommé lustre-dyn-st-class.yaml), indiquez le nom de la nouvelle classe de stockage et indiquez les valeurs des paramètres obligatoires et facultatifs :
- Créez une demande de volume persistant à provisionner par le nouveau système de fichiers dans le service File Storage with Lustre, comme suit :
- Créez un fichier manifeste pour définir la demande de volume persistant :
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc-name> spec: accessModes: - <ReadWriteMany|ReadOnlyOncePod> storageClassName: "<storage-class-name>" resources: requests: storage: <capacity>où :
-
name: <pvc-name>: requis. Par exemple,lustre-dynamic-claim -
storageClassName: "<storage-class-name>": requis. Nom de la classe de stockage que vous avez définie précédemment. Par exemple,lustre-dyn-storage. -
accessModes: - <ReadWriteMany|ReadOnlyOncePod>: requis. Indique comment le système de fichiers doit être monté et partagé par les pods. Actuellement,ReadWriteManyetReadOnlyOncePodsont pris en charge. Par exemple,ReadWriteMany. -
storage: <capacity>: requis. Cette valeur doit être au moins égale à31.2T(ou31200G). Vous pouvez spécifier une capacité plus importante, mais vous devez utiliser des incréments particuliers qui dépendent de la capacité (reportez-vous à Augmentation de la capacité du système de fichiers). Par exemple,31.2T.
Par exemple, le fichier manifeste suivant (nommé
lustre-dyn-claim.yaml) définit une demande de volume persistant nomméelustre-dynamic-claimqui est provisionnée par le système de fichiers défini dans la classe de stockagelustre-dyn-storage:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: lustre-dynamic-claim spec: accessModes: - ReadWriteMany storageClassName: "lustre-dyn-storage" resources: requests: storage: 31.2T -
- Créez la demande de volume persistant à partir du fichier manifeste en saisissant ce qui suit :
kubectl create -f <filename>Par exemple :kubectl create -f lustre-dyn-claim.yaml
Un nouveau PVC est créé. Le module d'extension de volume CSI crée un volume persistant (PV) et un nouveau système de fichiers dans le service File Storage with Lustre. Notez que la création d'un nouveau système de fichiers Lustre prend au moins 10 minutes et peut prendre plus de temps, selon la taille du système de fichiers. Utilisez la console ou la CLI pour vérifier que le nouveau système de fichiers Lustre a été créé (reportez-vous à Liste des systèmes de fichiers).
Le nouveau PVC est lié au nouveau PV. Les données sont cryptées lorsqu'elles sont inactives, à l'aide de clés de cryptage gérées par Oracle ou par vous.
- Créez un fichier manifeste pour définir la demande de volume persistant :
-
Vérifiez que la demande de volume persistante a été liée àun nouveau volume persistant en saisissant cette commande :
kubectl get pvcExemple de sortie :
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE lustre-dynamic-claim Bound csi-lustre-<unique_ID> 30468750000Ki RWX lustre-dyn-storage 4m -
Utilisez la nouvelle demande de volume persistant lors de la création d'autres objets, tels que des pods. Par exemple, vous pouvez créer un pod à partir de la définition de pod suivante :
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 -
Après avoir créé un pod comme décrit dans l'exemple de l'étape précédente, vous pouvez vérifier qu'il utilise la nouvelle demande de volume persistant en saisissant ce qui suit :
kubectl describe pod lustre-dynamic-app
Si vous prévoyez fréquemment de créer dynamiquement de nouveaux PV et de nouveaux systèmes de fichiers lorsque vous créez des demandes de volume persistant, vous pouvez indiquer que la nouvelle classe de stockage que vous avez créée doit être utilisée comme classe de stockage par défaut pour le provisionnement de nouvelles demandes de volume persistant. Pour plus de détails, reportez-vous à la documentation Kubernetes.
Encrypting Data At Rest on a New Lustre File System
Le service File Storage avec Lustre crypte toujours les données inactives à l'aide de clés de cryptage gérées par Oracle par défaut. Toutefois, vous avez la possibilité d'indiquer le cryptage au repos à l'aide de vos propres clés de cryptage maître que vous gérez vous-même dans le service Vault.
Selon la façon dont vous souhaitez crypter les données inactives, suivez les instructions appropriées ci-dessous :
- To use the CSI volume plugin to dynamically create a new Lustre file system that uses Oracle-managed encryption keys to encrypt data at rest, follow the steps in Provisioning a PVC on a New Lustre File System Using the CSI Volume Plugin and do not include the
kmsKeyId: <key-ocid>parameter in the storage class definition. Les données sont cryptées au repos, à l'aide de clés de cryptage gérées par 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. Les données sont cryptées au repos, à l'aide de la clé de cryptage indiquée.
Provisioning a PVC on an Existing Lustre File System
Pour créer une demande de volume persistant sur un système de fichiers existant dans le service File Storage avec Lustre (à l'aide de clés de cryptage gérées par Oracle pour crypter les données inactives), procédez comme suit :
- Créez un système de fichiers dans File Storage avec le service Lustre, en sélectionnant l'option de cryptage Crypter à l'aide de clés gérées par Oracle. See Creating a Lustre File System.
- Créez des règles de sécurité dans un groupe de sécurité réseau (recommandé) ou une liste de sécurité pour le système de fichiers Lustre et pour le sous-réseau de noeuds de processus actif du cluster.Les règles de sécurité à créer dépendent des emplacements réseau relatifs du système de fichiers Lustre et des noeuds de processus actif qui agissent en tant que client, selon les scénarios suivants :
Ces scénarios, les règles de sécurité à créer et l'emplacement où les créer, sont entièrement décrits dans la documentation du service File Storage with Lustre (reportez-vous à Règles de sécurité VCN requises).
- Créez un PV soutenu par le système de fichiers dans File Storage avec le service Lustre comme suit :
-
Créez un fichier manifeste pour définir une valeur PV et, dans la section
csi:, définissez :-
driveràlustre.csi.oraclecloud.com -
volumeHandleà<MGSAddress>@<LNetName>:/<MountName>où :
-
<MGSAddress>est l'adresse de service de gestion du système de fichiers dans File Storage avec le service Lustre. -
<LNetName>est le nom réseau LNet du système de fichiers dans File Storage avec le service Lustre. -
<MountName>est le nom de montage utilisé lors de la création du système de fichiers dans File Storage avec le service Lustre.
Par exemple :
10.0.2.6@tcp:/testlustrefs -
-
fsTypeàlustre - (facultatif, mais recommandé)
volumeAttributes.setupLnetà"true"si vous souhaitez que le pilote CSI Lustre effectue la configuration lnet (réseau Lustre) avant de monter le système de fichiers. - (Facultatif)
volumeAttributes.lustreSubnetCidrà la plage de réseau source du noeud de processus actif utilisée pour le trafic Lustre :- Quand utiliser : spécifiez uniquement une plage de réseau si les noeuds de processus actif utilisent une carte d'interface réseau virtuelle secondaire pour se connecter au système de fichiers Lustre. Ce CIDR doit correspondre au bloc de sous-réseau de cette carte d'interface réseau virtuelle secondaire (par exemple,
10.0.2.0/24). - A quel moment omettre : n'indiquez pas de plage réseau si les noeuds de processus actif utilisent leur carte d'interface réseau virtuelle principale (interface par défaut) pour la connectivité Lustre.
- Important : ce paramètre est différent du paramètre
subnetIddu système de fichiers Lustre, qui définit l'emplacement du système de fichiers Lustre lui-même.
- Quand utiliser : spécifiez uniquement une plage de réseau si les noeuds de processus actif utilisent une carte d'interface réseau virtuelle secondaire pour se connecter au système de fichiers Lustre. Ce CIDR doit correspondre au bloc de sous-réseau de cette carte d'interface réseau virtuelle secondaire (par exemple,
- (Facultatif)
volumeAttributes.lustrePostMountParameterspour définir les paramètres Lustre. Par exemple :... volumeAttributes: lustrePostMountParameters: '[{"*.*.*MDT*.lru_size": 11200},{"at_history" : 600}]'
Par exemple, le fichier manifeste suivant (nommé lustre-PV-example.yaml) définit un PV appelé
lustre-pv-examplesoutenu par un système de fichiers 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" -
- Créez le fichier PV à partir du fichier manifeste en saisissant la commande suivante :
kubectl apply -f <filename>Par exemple :
kubectl apply -f lustre-pv-example.yaml -
Vérifiez que le PV a bien été créé en saisissant la commande suivante :
kubectl get pv <pv-name>Par exemple :
kubectl get pv lustre-pv-exampleExemple de sortie :
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE lustre-pv-example 30468750000Ki RWX Retain Bound 56m
-
- Créez une demande de volume persistant provisionnée par la demande de modification que vous avez créée, comme suit :
- Créez un fichier manifeste pour définir la demande de volume persistant et définissez les éléments suivants :
-
storageClassNameà"". Vous devez indiquer une valeur vide pourstorageClassName, même si la classe de stockage n'est pas applicable dans le cas du provisionnement statique du stockage persistant. Si vous n'indiquez pas de valeur vide pourstorageClassName, la classe de stockage par défaut (oci-bv) est utilisée, ce qui entraîne une erreur. -
volumeNameindique le nom de la valeur de modification que vous avez créée (par exemple,lustre-pv-example).
Par exemple, le fichier manifeste suivant (nommé lustre-PVC-example.yaml) définit une PVC nommée
lustre-pvc-examplequi sera liée à une PV nomméelustre-pv-example:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: lustre-pvc-example spec: accessModes: - ReadWriteMany storageClassName: "" volumeName: lustre-pv-example resources: requests: storage: 31.2TNotez que l'élément
requests: storage:doit être présent dans le fichier manifeste de la demande de volume persistant et que sa valeur doit correspondre à la valeur spécifiée pour l'élémentcapacity: storage:dans le fichier manifeste de la demande de volume persistant. En dehors de cela, la valeur de l'élémentrequests: storage:est ignorée. -
- Créez la demande de volume persistant à partir du fichier manifeste en saisissant :
kubectl apply -f <filename>Par exemple :kubectl apply -f lustre-pvc-example.yaml -
Vérifiez que la PVC a été créée et liée à la PV en saisissant ce qui suit :
kubectl get pvc <pvc-name>Par exemple :
kubectl get pvc lustre-pvc-exampleExemple de sortie :
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lustre-pvc-example Bound lustre-pv-example 30468750000Ki RWX 57m
Le PVC est lié au PV soutenu par le système de fichiers File Storage avec service Lustre. Les données sont cryptées lorsqu'elles sont inactives à l'aide de clés de cryptage gérées par Oracle.
- Créez un fichier manifeste pour définir la demande de volume persistant et définissez les éléments suivants :
- Utilisez la nouvelle demande de volume persistant lors de la création d'autres objets, tels que des déploiements. Par exemple :
- Créez un manifeste nommé lustre-app-example-deployment.yaml pour définir un déploiement nommé
lustre-app-example-deploymentqui utilise la demande de volume persistantlustre-pvc-example, comme suit :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 - Créez le déploiement à partir du fichier manifeste en saisissant la commande suivante :
kubectl apply -f lustre-app-example-deployment.yaml - Vérifiez que les pods de déploiement ont été créés et sont en cours d'exécution en saisissant ce qui suit :
kubectl get podsExemple de sortie :
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
- Créez un manifeste nommé lustre-app-example-deployment.yaml pour définir un déploiement nommé
Provisionnement d'une demande de volume persistant sur un système de fichiers Lustre File System existant avec des options de montage
Vous pouvez optimiser les performances et contrôler l'accès à un système de fichiers Lustre existant en spécifiant des options de montage pour le PV. La spécification des options de montage vous permet d'affiner la façon dont les pods interagissent avec le système de fichiers.
Pour inclure les options de montage :
- Start by following the instructions in Provisioning a PVC on an Existing Lustre File System.
- Dans le manifeste PV décrit dans la section Provisioning a PVC on an Existing Lustre File System, ajoutez le champ
spec.mountOptions, qui vous permet de spécifier comment le PV doit être monté par les pods.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"Dans cet exemple, le champ
mountOptionsest défini surro, ce qui indique que les pods doivent disposer d'un accès en lecture seule au système de fichiers. Pour plus d'informations sur les options de montage PV, reportez-vous à Volumes persistants dans la documentation Kubernetes.
Encrypting Data At Rest on an Existing Lustre File System
Le service File Storage with Lustre crypte toujours les données au repos, à l'aide de clés de chiffrement gérées par Oracle par défaut. Toutefois, vous avez la possibilité d'indiquer le cryptage au repos à l'aide de vos propres clés de cryptage maître que vous gérez vous-même dans le service Vault.
Pour plus d'informations sur les systèmes de fichiers File Storage with Lustre qui utilisent des clés de cryptage gérées par Oracle ou vos propres clés de cryptage maître que vous gérez vous-même, reportez-vous à Mise à jour du cryptage de système de fichiers.