Provisionnement de PVC sur le stockage de fichiers avec le service Lustre
Découvrez comment provisionner des revendications de volume persistant pour les grappes que vous avez créées à l'aide de Kubernetes Engine (OKE) en montant des systèmes de fichiers à partir du service File Storage avec Lustre.
Le service de stockage de fichiers avec Lustre d'Oracle Cloud Infrastructure est un service de stockage entièrement géré conçu pour répondre aux exigences de formation et d'inférence en IA/apprentissage automatique, ainsi qu'aux besoins de calcul de haute performance. Vous utilisez le plugiciel CSI Lustre pour connecter des grappes aux systèmes de fichiers du service de stockage de fichiers avec Lustre.
Vous pouvez utiliser le service File Storage with Lustre pour provisionner des revendications de volume persistant de deux façons :
- En définissant et en créant une nouvelle classe de stockage, puis en définissant et en créant une revendication de volume persistant référençant cette classe de stockage. Lorsque vous créez la revendication de volume persistant, le plugiciel CSI Lustre 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. Voir Provisionnement d'une revendication de volume persistant sur un nouveau système de fichiers Lustre File System à l'aide du plugiciel de volume CSI.
- 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, puis en définissant une nouvelle revendication de volume persistant. Lorsque vous créez la revendication de volume persistant, Kubernetes Engine la lie à la revendication de volume persistant soutenue par le service File Storage with Lustre. See Provisioning a PVC on an Existing Lustre File System
Le pilote CSI Lustre est le logiciel global qui permet d'utiliser les systèmes de fichiers Lustre avec Kubernetes au moyen de l'interface de stockage de conteneurs (CSI). Le plugin Lustre CSI 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.
Notez ce qui suit :
- Lorsque vous utilisez le plugiciel CSI Lustre 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 plugiciel CSI.
- Tous les systèmes de fichiers Lustre créés dynamiquement par le plugiciel de volume CSI portent des noms commençant par
csi-lustre-. - Tous les systèmes de fichiers Lustre créés dynamiquement par le plugiciel de volume CSI apparaissent dans la console. Cependant, n'utilisez pas la console (ni la CLI ni 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 plugiciel de volume CSI ne sont pas rapprochées des objets Kubernetes.
- Certaines fonctions avancées telles que l'extension de volume, les instantanés et le clone ne sont pas disponibles actuellement pour les systèmes de fichiers Lustre provisionnés de manière dynamique.
- Si vous supprimez une revendication de volume persistant liée à une revendication de volume persistant soutenue par un système de fichiers créé par le plugiciel de volume CSI et que la politique de récupération est réglée à Supprimer, les deux systèmes de fichiers PV et Lustre sont supprimés. Si la politique de récupération est Retenue, le PV n'est pas supprimé.
- L'utilisation du pilote CSI Lustre pour provisionner une revendication de volume persistant sur un système de fichiers Lustre créé dynamiquement est prise en charge sur les grappes créées par Kubernetes Engine exécutant Kubernetes version 1.32 ou ultérieure. L'utilisation du pilote CSI Lustre pour provisionner une revendication de volume persistant sur un système de fichiers Lustre existant est prise en charge sur les grappes créées par le moteur Kubernetes 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 une grappe créée par Kubernetes Engine, l'ensemble client Lustre doit être installé sur les noeuds de travail qui doivent monter le système de fichiers. Pour plus d'informations sur les clients Lustre, voir Montage et accès à un système de fichiers Lustre File System.
- Les données sont chiffrées au repos à l'aide de clés de chiffrement 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 sous Disponibilité dans la documentation sur File Storage with Lustre.
Provisionnement d'une revendication de volume persistant sur un nouveau système de fichiers Lustre File System à l'aide du plugiciel de volume CSI
Les préalables suivants s'appliquent lors du provisionnement d'une revendication de volume persistant sur un nouveau système de fichiers Lustre créé dynamiquement par le plugiciel de volume CSI :
- Les grappes doivent exécuter Kubernetes version 1.32 ou ultérieure pour provisionner une revendication de volume persistant sur un nouveau système de fichiers créé dynamiquement par le plugiciel de volume CSI.
-
Des politiques IAM appropriées doivent exister pour permettre au plugiciel 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 groupe de noeuds, un sous-réseau ou un système de fichiers est différent du compartiment auquel appartient une grappe, des politiques IAM doivent exister pour permettre au plugiciel 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 spécifier une clé de chiffrement principale gérée par l'utilisateur particulière à partir du service de chambre forte afin de chiffrer les données au repos, des politiques IAM appropriées doivent exister pour permettre au service File Storage with Lustre d'accéder à cette clé de chiffrement principale. Voir Mise à jour du chiffrement du système de fichiers.
- L'ensemble client Lustre doit être installé sur tous les noeuds de travail qui doivent monter le système de fichiers Lustre.
Pour provisionner dynamiquement une revendication de volume persistant sur un nouveau système de fichiers Lustre créé dynamiquement par le plugiciel de volume CSI dans le service File Storage with Lustre :
- Créez des règles de sécurité dans un groupe de sécurité de 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 travail de la grappe.
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 travail qui agissent en tant que client, selon les scénarios suivants :
- Option 1 : Client et Lustre dans différents sous-réseaux
- Option 2 : Client et Lustre dans le même sous-réseau
Ces scénarios, les règles de sécurité à créer et l'endroit où les créer sont décrits en détail dans la documentation du service File Storage with Lustre (voir Règles de sécurité de réseau VCN requises).
- Définissez une nouvelle classe de stockage qui utilise le provisionneur
lustre.csi.oraclecloud.com:- Créez un fichier manifeste (par exemple, dans un fichier nommé lustre-dyn-st-class.yaml), spécifiez un nom pour la nouvelle classe de stockage et spécifiez des valeurs pour les 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>: Obligatoire. Nom de votre choix pour la classe de stockage.availabilityDomain: <ad-name>: Obligatoire. Nom du domaine de disponibilité dans lequel créer le système de fichiers Lustre. Par exemple,availabilityDomain: US-ASHBURN-AD-1. Pour connaître le nom du domaine de disponibilité à utiliser, exécutez la commande de l'interface de ligne de commandeoci iam availability-domain list(ou utilisez l'opération ListAvailabilityDomains). Pour plus d'informations, voir 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. S'il n'est pas spécifié, la valeur par défaut est le même compartiment que la grappe. Par exemple,compartmentId: ocid1.compartment.oc1..aaa______t6qsubnetId: <subnet-ocid>: Obligatoire. 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>: Obligatoire. Niveau de performance 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 spécifié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 chiffrement principale que vous gérez, avec laquelle chiffrer les données au repos. Si aucune valeur n'est indiquée, les données sont chiffrées au repos à l'aide de clés de chiffrement 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é de réseau à associer au système de fichiers Lustre. Par exemple,nsgIds: '["ocid1.nsg.oc1.iad.aab______fea"]'rootSquashEnabled: "<true | false>": Facultatif. Réglez àtruepour restreindre l'accès racine des clients. La valeur par défaut estfalse.rootSquashUid: "<value>": Facultatif. Lorsque le carré racine est activé, les opérations racine sont mappées à cet UID. Par défaut :65534.rootSquashGid: "<value>": Facultatif. Lorsque le carré racine est activé, les opérations racine sont mappées à cet IDG. Par défaut :65534.rootSquashClientExceptions: '["<ip-address>"]': Facultatif. Tableau JSON d'adresses IP ou de blocs CIDR qui ne sont pas soumis au carré racine (10 entrées au maximum). Par exemple,rootSquashClientExceptions: '["10.0.2.4"]'.oci.oraclecloud.com/initial-defined-tags-override: '{"<tag-namespace>": {"<tag-key>": "<tag-value>"}}'Facultatif. Spécifie un marqueur défini pour le nouveau système de fichiers. Par exemple,oci.oraclecloud.com/initial-defined-tags-override: '{"Org": {"CostCenter": "AI"}}'Notez que pour appliquer des marqueurs définis d'un espace de noms de marqueur appartenant à un compartiment à une ressource de système de fichiers appartenant à un autre compartiment, vous devez inclure un énoncé de politique pour permettre à la grappe d'utiliser l'espace de noms de marqueur. Voir Politique IAM supplémentaire lorsqu'une grappe et un espace de noms de marqueur se trouvent dans des compartiments différents.
oci.oraclecloud.com/initial-freeform-tags-override: '{"<tag-key>": "<tag-value>"}'Facultatif. Spécifie un marqueur à structure libre pour le nouveau système de fichiers. Par exemple,oci.oraclecloud.com/initial-freeform-tags-override: '{"Project": "ML"}'setupLnet: "<true | false>": Facultatif. Réglez àtruesi 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"true".lustreSubnetCidr: "<cidr-block>": Facultatif. Régler à l'intervalle de réseau source du noeud de travail utilisé pour le trafic Lustre :- Quand utiliser : Spécifiez un intervalle de réseau uniquement si les noeuds de travail utilisent une carte VNIC secondaire pour se connecter au système de fichiers Lustre. Ce bloc CIDR doit correspondre au bloc de sous-réseau de cette carte VNIC secondaire (par exemple,
10.0.2.0/24). - Quand omettre : Ne spécifiez pas d'intervalle de réseau si les noeuds de travail utilisent leur carte VNIC 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 un intervalle de réseau uniquement si les noeuds de travail utilisent une carte VNIC secondaire pour se connecter au système de fichiers Lustre. Ce bloc CIDR doit correspondre au bloc de sous-réseau de cette carte VNIC 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 entrant :
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), spécifiez un nom pour la nouvelle classe de stockage et spécifiez des valeurs pour les paramètres obligatoires et facultatifs :
- Créez une revendication 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 revendication 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>: Obligatoire. Par exemple,lustre-dynamic-claim -
storageClassName: "<storage-class-name>": Obligatoire. Nom de la classe de stockage que vous avez définie précédemment. Par exemple,lustre-dyn-storage. -
accessModes: - <ReadWriteMany|ReadOnlyOncePod>: Obligatoire. Spécifie comment le système de fichiers doit être monté et partagé par les pods. Actuellement,ReadWriteManyetReadOnlyOncePodsont pris en charge. Par exemple :ReadWriteMany. -
storage: <capacity>: Obligatoire. Cette valeur doit être au moins31.2T(ou31200G). Vous pouvez spécifier une capacité plus grande, mais vous devez utiliser des incréments particuliers qui dépendent de la capacité (voir 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 revendication 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 revendication de volume persistant à partir du fichier manifeste en entrant :
kubectl create -f <filename>Par exemple :kubectl create -f lustre-dyn-claim.yaml
Un nouveau PVC est créé. Le plugiciel de volume CSI crée un nouveau volume persistant 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 l'interface de ligne de commande pour confirmer que le nouveau système de fichiers Lustre a été créé (voir Liste des systèmes de fichiers).
Le nouveau PVC est lié au nouveau PV. Les données sont chiffrées au repos à l'aide de clés de chiffrement gérées par Oracle ou par vous.
- Créez un fichier manifeste pour définir la revendication de volume persistant :
-
Vérifiez que la PVC a été liée au nouveau volume persistant en entrant :
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 revendication de volume persistant lors de la création d'autres objets, tels que des pods. Par exemple, vous pouvez créer un nouveau 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 nouveau pod, comme décrit dans l'exemple de l'étape précédente, vous pouvez vérifier que le pod utilise la nouvelle revendication de volume persistant en entrant :
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 PVC, vous pouvez spécifier 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 PVC. Pour plus de détails, consultez la documentation sur Kubernetes
Chiffrement des données au repos dans un nouveau système de fichiers Lustre File System
Le service File Storage avec Lustre chiffre 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é de spécifier le chiffrement au repos à l'aide de vos propres clés de chiffrement principales que vous gérez vous-même dans le service de chambre forte.
Selon la façon dont vous souhaitez chiffrer les données au repos, suivez les instructions appropriées ci-dessous :
- Pour utiliser le plugiciel de volume CSI pour créer dynamiquement un système de fichiers Lustre qui utilise des clés de chiffrement gérées par Oracle pour chiffrer les données au repos, suivez les étapes sous Provisionnement d'une revendication de volume persistant sur un nouveau système de fichiers Lustre File System à l'aide du plugiciel de volume CSI et n'incluez pas le paramètre
kmsKeyId: <key-ocid>dans la définition de la classe de stockage. Les données sont chiffrées au repos à l'aide de clés de chiffrement gérées par Oracle. - Pour utiliser le plugiciel de volume CSI pour créer dynamiquement un système de fichiers Lustre qui utilise des clés de chiffrement principales que vous gérez pour chiffrer les données au repos, suivez les étapes sous Provisionnement une revendication de volume persistant sur un nouveau système de fichiers Lustre File System à l'aide du plugiciel de volume CSI, incluez le paramètre
kmsKeyId: <key-ocid>dans la définition de la classe de stockage et spécifiez l'OCID de la clé de chiffrement principale dans le service de chambre forte. Les données sont chiffrées au repos à l'aide de la clé de chiffrement que vous spécifiez.
Provisionnement d'une revendication de volume persistant sur un système de fichiers Lustre File System existant
Pour créer une revendication de volume persistant sur un système de fichiers existant dans le service de stockage de fichiers avec Lustre (à l'aide de clés de chiffrement gérées par Oracle pour chiffrer les données au repos) :
- Créez un système de fichiers dans le service File Storage avec Lustre, en sélectionnant l'option de chiffrement Chiffrer à l'aide des clés gérées par Oracle. Voir Création d'un système de fichiers Lustre File System.
- Créez des règles de sécurité dans un groupe de sécurité de 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 travail de la grappe.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 travail qui agissent en tant que client, selon les scénarios suivants :
Ces scénarios, les règles de sécurité à créer et l'endroit où les créer sont décrits en détail dans la documentation du service File Storage with Lustre (voir Règles de sécurité de réseau VCN requises).
- Créez une valeur actualisée soutenue par le système de fichiers dans le service de stockage de fichiers avec Lustre comme suit :
-
Créez un fichier manifeste pour définir une valeur actualisée et, dans la section
csi:, définissez les éléments suivants :-
driveràlustre.csi.oraclecloud.com -
volumeHandleà<MGSAddress>@<LNetName>:/<MountName>où :
-
<MGSAddress>est l'adresse du service de gestion pour le système de fichiers du service de stockage de fichiers avec Lustre -
<LNetName>est le nom de réseau LNet pour le système de fichiers dans le service de stockage de fichiers avec Lustre. -
<MountName>est le nom de montage utilisé lors de la création du système de fichiers dans le service de stockage de fichiers avec Lustre.
Par exemple :
10.0.2.6@tcp:/testlustrefs -
-
fsTypeàlustre - (facultatif, mais recommandé)
volumeAttributes.setupLnetà"true"si vous voulez que le pilote CSI Lustre effectue la configuration lnet (Lustre Network) avant de monter le système de fichiers. - (facultatif)
volumeAttributes.lustreSubnetCidrpour l'intervalle de réseau source du noeud de travail utilisé pour le trafic Lustre :- Quand utiliser : Spécifiez un intervalle de réseau uniquement si les noeuds de travail utilisent une carte VNIC secondaire pour se connecter au système de fichiers Lustre. Ce bloc CIDR doit correspondre au bloc de sous-réseau de cette carte VNIC secondaire (par exemple,
10.0.2.0/24). - Quand omettre : Ne spécifiez pas d'intervalle de réseau si les noeuds de travail utilisent leur carte VNIC 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 un intervalle de réseau uniquement si les noeuds de travail utilisent une carte VNIC secondaire pour se connecter au système de fichiers Lustre. Ce bloc CIDR doit correspondre au bloc de sous-réseau de cette carte VNIC 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 PV à partir du fichier manifeste en entrant :
kubectl apply -f <filename>Par exemple :
kubectl apply -f lustre-pv-example.yaml -
Vérifiez que le PV a été créé avec succès en entrant :
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 revendication de volume persistant provisionnée par la revendication de volume persistant que vous avez créée, comme suit :
- Créez un fichier manifeste pour définir la revendication de volume persistant et définissez les éléments suivants :
-
storageClassNameà""Notez que vous devez spécifier 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 ne spécifiez pas de valeur vide pourstorageClassName, la classe de stockage par défaut (oci-bv) est utilisée, ce qui entraîne une erreur. -
volumeNameau nom de la valeur actualisée que vous avez créée (par exemple,lustre-pv-example)
Par exemple, le fichier manifeste suivant (nommé lustre-PVC-example.yaml) définit une revendication de volume persistant nommée
lustre-pvc-examplequi sera liée à une revendication de volume persistant 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 revendication 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 revendication de volume persistant. En dehors de cela, la valeur de l'élémentrequests: storage:est ignorée. -
- Créez la revendication de volume persistant à partir du fichier manifeste en entrant :
kubectl apply -f <filename>Par exemple :kubectl apply -f lustre-pvc-example.yaml -
Vérifiez que la PVC a bien été créée et liée au PV en entrant :
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
La revendication de volume persistant est liée à la valeur actualisée soutenue par le stockage de fichiers avec le système de fichiers du service Lustre. Les données sont chiffrées au repos à l'aide de clés de chiffrement gérées par Oracle.
- Créez un fichier manifeste pour définir la revendication de volume persistant et définissez les éléments suivants :
- Utilisez la nouvelle revendication 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 revendication 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 entrant :
kubectl apply -f lustre-app-example-deployment.yaml - Vérifiez que les pods de déploiement ont été créés et s'exécutent en entrant :
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 revendication 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 les options de montage pour le PV. La spécification des options de montage vous permet d'affiner l'interaction des pods avec le système de fichiers.
Pour inclure des options de montage :
- Start by following the instructions in Provisioning a PVC on an Existing Lustre File System.
- Dans le manifeste PV décrit sous Provisionnement d'une revendication de volume persistant sur un système de fichiers Lustre File System, ajoutez le champ
spec.mountOptions, qui vous permet de spécifier comment la revendication de volume persistant doit être montée par les pods.Par exemple, dans le fichier manifeste lustre-pv-example.yaml affiché sous Provisionnement d'une revendication de volume persistant sur un système de fichiers Lustre File System, vous pouvez inclure le champ
mountOptionscomme suit :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 réglé àro, ce qui indique que les pods doivent avoir un accès en lecture seule au système de fichiers. Pour plus d'informations sur les options de montage PV, voir Volumes persistants dans la documentation sur Kubernetes.
Chiffrement des données au repos dans un système de fichiers Lustre File System existant
Le service File Storage with Lustre chiffre 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é de spécifier le chiffrement au repos à l'aide de vos propres clés de chiffrement principales que vous gérez vous-même dans le service de chambre forte.
Pour plus d'informations sur les systèmes de fichiers File Storage with Lustre qui utilisent des clés de chiffrement gérées par Oracle ou vos propres clés de chiffrement principales que vous gérez vous-même, voir Mise à jour du chiffrement du système de fichiers.