Aprovisionamiento de PVC en File Storage con Lustre Service
Descubra cómo aprovisionar reclamaciones de volúmenes persistentes para clusters que ha creado con Kubernetes Engine (OKE) mediante el montaje de sistemas de archivos desde File Storage con el servicio Lustre.
El servicio Oracle Cloud Infrastructure File Storage with Lustre es un servicio de almacenamiento totalmente gestionado diseñado para satisfacer las demandas de formación e inferencia de IA/AA y necesidades informáticas de alto rendimiento. Utilice el plugin Lustre CSI para conectar clusters a sistemas de archivos en File Storage con el servicio Lustre.
Puede utilizar el servicio File Storage with Lustre para aprovisionar reclamaciones de volúmenes persistentes (PVC) de dos formas:
- Definiendo y creando una nueva clase de almacenamiento y, a continuación, definiendo y creando una PVC que haga referencia a esa clase de almacenamiento. Cuando crea la PVC, el plugin Lustre CSI crea dinámicamente un nuevo sistema de archivos Lustre y un nuevo volumen persistente respaldado por el nuevo sistema de archivos. Consulte Aprovisionamiento de una PVC en un nuevo Lustre File System mediante el plugin de volumen CSI.
- Mediante la creación manual de un sistema de archivos en el servicio File Storage with Lustre, la definición y creación de un volumen persistente (PV) respaldado por el nuevo sistema de archivos y, por último, la definición de una nueva PVC. Al crear la PVC, el motor de Kubernetes enlaza la PVC a la PV respaldada por el servicio de almacenamiento de archivos con Lustre. Consulte Aprovisionamiento de una PVC en un Lustre File System existente
El controlador CSI de Lustre es el software general que permite que los sistemas de archivos de Lustre se utilicen con Kubernetes a través de la interfaz de almacenamiento de contenedores (CSI). El plugin CSI de Lustre es un componente específico dentro del controlador, responsable de interactuar con el servidor API de Kubernetes y gestionar el ciclo de vida de los volúmenes de Lustre.
Tenga en cuenta lo siguiente:
- Al utilizar el plugin Lustre CSI para crear dinámicamente un nuevo sistema de archivos, no actualice ni suprima manualmente el volumen persistente ni los objetos del sistema de archivos Lustre que crea el plugin CSI.
- Cualquier sistema de archivos Lustre creado dinámicamente por el plugin de volumen CSI recibe nombres que comienzan con
csi-lustre-. - Los sistemas de archivos Lustre creados dinámicamente por el plugin de volumen CSI aparecen en la consola. Sin embargo, no utilice la consola (o la CLI o la API de Oracle Cloud Infrastructure) para modificar estos recursos creados dinámicamente. Los cambios realizados en los recursos de Oracle Cloud Infrastructure creados dinámicamente por el plugin de volumen de CSI no se concilian con los objetos de Kubernetes.
- Algunas funciones avanzadas, como la expansión de volúmenes, la instantánea y la clonación, no están disponibles actualmente para los sistemas de archivos Lustre aprovisionados dinámicamente.
- Si suprime una PVC vinculada a un PV respaldado por un sistema de archivos creado por el plugin de volumen CSI y la política de reclamación se define en Delete, tanto el PV como el sistema de archivos Lustre se suprimen. Si la política de reclamación es Retener, el PV no se suprime.
- El uso del controlador Lustre CSI para aprovisionar una PVC en un sistema de archivos Lustre creado dinámicamente está soportado en clusters creados por el motor de Kubernetes que ejecutan Kubernetes versión 1.32 o posterior. El uso del controlador CSI de Lustre para aprovisionar una PVC en un sistema de archivos Lustre existente está soportado en clusters creados por Kubernetes Engine que ejecutan Kubernetes versión 1.29 o posterior.
- El controlador CSI de Lustre está soportado en Oracle Linux 8 x86 y en Ubuntu x86 22.04.
- Para utilizar un sistema de archivos Lustre con un cluster creado por Kubernetes Engine, el paquete de cliente Lustre debe estar instalado en los nodos de trabajador que tienen que montar el sistema de archivos. Para obtener más información sobre los clientes de Lustre, consulte Mounting and Accessing a Lustre File System.
- Los datos se cifran cuando están estáticos mediante claves de cifrado gestionadas por Oracle o por Vd.
- Oracle Cloud Infrastructure File Storage with Lustre solo está disponible en las regiones que se muestran en Disponibilidad en File Storage con documentación de Lustre.
Aprovisionamiento de una PVC en un nuevo sistema de archivos Lustre File System mediante el plugin de volumen CSI
Al aprovisionar una PVC en un nuevo sistema de archivos Lustre creado dinámicamente por el plugin de volumen CSI, se aplican los siguientes requisitos:
- Los clusters deben ejecutar Kubernetes 1.32 o una versión posterior para aprovisionar una PVC en un nuevo sistema de archivos creado dinámicamente por el plugin de volumen CSI.
-
Deben existir las políticas de IAM adecuadas para permitir que el plugin de volumen de CSI cree y gestione recursos de Lustre. Por ejemplo:
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 el compartimento al que pertenece un pool de nodos, una subred o un sistema de archivos es diferente del compartimento al que pertenece un cluster, deben existir políticas de IAM para permitir que el plugin de volumen de CSI acceda a la ubicación adecuada. Por ejemplo:
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' -
Para especificar una clave de cifrado maestra gestionada por el usuario concreta desde el servicio Almacén para cifrar datos estáticos, deben existir políticas de IAM adecuadas para permitir que el servicio File Storage with Lustre acceda a esa clave de cifrado maestra. Consulte Updating File System Encryption.
- El paquete de cliente Lustre debe estar instalado en todos los nodos de trabajador que necesitan montar el sistema de archivos Lustre.
Para aprovisionar dinámicamente una PVC en un nuevo sistema de archivos Lustre creado dinámicamente por el plugin de volumen CSI en el servicio File Storage with Lustre:
- Cree reglas de seguridad en un grupo de seguridad de red (recomendado) o en una lista de seguridad para el sistema de archivos Lustre y para la subred de nodos de trabajador del cluster.
Las reglas de seguridad para crear dependen de las ubicaciones de red relativas del sistema de archivos Lustre y de los nodos de trabajador que actúan como cliente, según los siguientes escenarios:
Estos escenarios, las reglas de seguridad que se van a crear y dónde crearlas, se describen por completo en la documentación del servicio File Storage with Lustre (consulte Reglas de seguridad de la VCN necesarias).
- Defina una nueva clase de almacenamiento que utilice el provisionador
lustre.csi.oraclecloud.com:- Cree un archivo de manifiesto (por ejemplo, en un archivo denominado lustre-dyn-st-class.yaml), especifique un nombre para la nueva clase de almacenamiento y especifique valores para los parámetros obligatorios y opcionales:
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>}]' # optionaldonde:
name: <storage-class-name>: necesario. Nombre que elija para la clase de almacenamiento.availabilityDomain: <ad-name>: necesario. Nombre del dominio de disponibilidad en el que se creará el nuevo sistema de archivos Lustre. Por ejemplo,availabilityDomain: US-ASHBURN-AD-1. Para averiguar el nombre de dominio de disponibilidad que se debe utilizar, ejecute el comando de la CLIoci iam availability-domain list(o utilice la operación ListAvailabilityDomains). Para obtener más información, consulte Nombres de dominio de disponibilidad de su arrendamiento.compartmentId: <compartment-ocid>: opcional. OCID del compartimento al que pertenecerá el nuevo sistema de archivos Lustre. Si no se especifica, el valor por defecto es el mismo compartimento que el cluster. Por ejemplo,compartmentId: ocid1.compartment.oc1..aaa______t6qsubnetId: <subnet-ocid>: necesario. OCID de la subred en la que se debe montar el nuevo sistema de archivos Lustre. Por ejemplo,subnetId: ocid1.subnet.oc1.iad.aaaa______kfaperformanceTier: <value>: necesario. Nivel de rendimiento del sistema de archivos Lustre. Valores permitidos:MBPS_PER_TB_125MBPS_PER_TB_250MBPS_PER_TB_500MBPS_PER_TB_1000
fileSystemName: <name>: opcional. El nombre del sistema de archivos Lustre, hasta 8 caracteres. Si no se especifica, se generará y utilizará un valor predeterminado de forma aleatoria. Por ejemplo,fileSystemName: aiworkfskmsKeyId: <key-ocid>: opcional. OCID de una clave de cifrado maestra que gestiona, con la que cifrar datos estáticos. Si no se especifica, los datos se cifran de forma estática mediante claves de cifrado gestionadas por Oracle. Por ejemplo,kmsKeyId: ocid1.key.oc1.iad.ann______usjnsgIds: '["<nsg-ocid>"]': opcional. Una matriz JSON de hasta cinco OCID de grupo de seguridad de red para asociar con el sistema de archivos Lustre. Por ejemplo,nsgIds: '["ocid1.nsg.oc1.iad.aab______fea"]'rootSquashEnabled: "<true | false>": opcional. Establézcalo entruepara restringir el acceso root de los clientes. El valor por defecto esfalse.rootSquashUid: "<value>": opcional. Cuando el squash raíz está activado, las operaciones raíz se asignan a este UID. El valor predeterminado es65534..rootSquashGid: "<value>": opcional. Cuando el squash raíz está activado, las operaciones raíz se asignan a este GID. El valor por defecto es65534.rootSquashClientExceptions: '["<ip-address>"]': opcional. Matriz JSON de direcciones IP o bloques CIDR que no están sujetos al squash raíz (máximo 10 entradas). Por ejemplo,rootSquashClientExceptions: '["10.0.2.4"]'.oci.oraclecloud.com/initial-defined-tags-override: '{"<tag-namespace>": {"<tag-key>": "<tag-value>"}}'Opcional. Especifica una etiqueta definida para el nuevo sistema de archivos. Por ejemplo,oci.oraclecloud.com/initial-defined-tags-override: '{"Org": {"CostCenter": "AI"}}'Tenga en cuenta que para aplicar etiquetas definidas de un espacio de nombres de etiqueta que pertenece a un compartimento a un recurso del sistema de archivos que pertenece a un compartimento diferente, debe incluir una sentencia de política para permitir que el cluster utilice el espacio de nombres de etiqueta. Consulte Política de IAM adicional cuando un cluster y un espacio de nombres de etiqueta están en diferentes compartimentos.
oci.oraclecloud.com/initial-freeform-tags-override: '{"<tag-key>": "<tag-value>"}'Opcional. Especifica una etiqueta de formato libre para el nuevo sistema de archivos. Por ejemplo,oci.oraclecloud.com/initial-freeform-tags-override: '{"Project": "ML"}'setupLnet: "<true | false>": opcional. Establézcalo entruesi el controlador Lustre CSI debe realizar la configuración de la red Lustre (LNet) antes del montaje. Se recomienda incluir el parámetrosetupLnety definirlo en"true".lustreSubnetCidr: "<cidr-block>": opcional. Se define en el rango de red de origen del nodo de trabajador utilizado para el tráfico Lustre:- Cuándo utilizar: especifique solo un rango de red si los nodos de trabajador utilizan una VNIC secundaria para conectarse al sistema de archivos Lustre. Este CIDR debe coincidir con el bloque de subred de esa VNIC secundaria (por ejemplo,
10.0.2.0/24). - Cuándo omitir: no especifique un rango de red si los nodos de trabajador utilizan su VNIC principal (la interfaz por defecto) para la conectividad de Lustre.
- Importante: este parámetro es diferente al parámetro
subnetIddel sistema de archivos Lustre, que define dónde se encuentra el sistema de archivos Lustre.
- Cuándo utilizar: especifique solo un rango de red si los nodos de trabajador utilizan una VNIC secundaria para conectarse al sistema de archivos Lustre. Este CIDR debe coincidir con el bloque de subred de esa VNIC secundaria (por ejemplo,
lustrePostMountParameters: '[{"<parameter1>": <value>},{"<parameter2>": <value>}]': opcional. Matriz JSON de parámetros avanzados del cliente Lustre que se deben definir después del montaje. Por ejemplo,lustrePostMountParameters: '[{"*.*.*MDT*.lru_size": 11200},{"at_history": 600}]'
Por ejemplo:
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 - Cree la clase de almacenamiento desde el archivo de manifiesto introduciendo:
kubectl create -f <filename>Por ejemplo:
kubectl create -f lustre-dyn-st-class.yaml
- Cree un archivo de manifiesto (por ejemplo, en un archivo denominado lustre-dyn-st-class.yaml), especifique un nombre para la nueva clase de almacenamiento y especifique valores para los parámetros obligatorios y opcionales:
- Cree una PVC para que la aprovisione el nuevo sistema de archivos en el servicio File Storage with Lustre, de la siguiente manera:
- Cree un archivo de manifiesto para definir la PVC:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc-name> spec: accessModes: - <ReadWriteMany|ReadOnlyOncePod> storageClassName: "<storage-class-name>" resources: requests: storage: <capacity>donde:
-
name: <pvc-name>: necesario. Por ejemplo,lustre-dynamic-claim -
storageClassName: "<storage-class-name>": necesario. Nombre de la clase de almacenamiento que ha definido anteriormente. Por ejemplo,lustre-dyn-storage. -
accessModes: - <ReadWriteMany|ReadOnlyOncePod>: necesario. Especifica cómo los pods montarán y compartirán el sistema de archivos. Actualmente están soportadosReadWriteManyyReadOnlyOncePod. Por ejemplo,ReadWriteMany. -
storage: <capacity>: necesario. Este valor debe ser al menos31.2T(o31200G). Puede especificar una capacidad mayor, pero debe utilizar incrementos concretos que dependan de la capacidad (consulte Aumento de la Capacidad del Sistema de Archivos). Por ejemplo,31.2T.
Por ejemplo, el siguiente archivo de manifiesto (denominado
lustre-dyn-claim.yaml) define una PVC denominadalustre-dynamic-claimque aprovisiona el sistema de archivos definido en la clase de almacenamientolustre-dyn-storage:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: lustre-dynamic-claim spec: accessModes: - ReadWriteMany storageClassName: "lustre-dyn-storage" resources: requests: storage: 31.2T -
- Cree la PVC a partir del archivo de manifiesto introduciendo:
kubectl create -f <filename>Por ejemplo:kubectl create -f lustre-dyn-claim.yaml
Se crea un nuevo PVC. El plugin de volumen CSI crea un nuevo volumen persistente (PV) y un nuevo sistema de archivos en el servicio File Storage with Lustre. Tenga en cuenta que la creación de un nuevo sistema de archivos Lustre tarda al menos 10 minutos y puede tardar más, según el tamaño del sistema de archivos. Utilice la consola o la CLI para confirmar que se ha creado el nuevo sistema de archivos Lustre (consulte Listing File Systems).
El nuevo PVC está ligado al nuevo PV. Los datos se cifran cuando están estáticos mediante claves de cifrado gestionadas por Oracle o por Vd.
- Cree un archivo de manifiesto para definir la PVC:
-
Verifique que la PVC se haya enlazado al nuevo volumen persistente introduciendo:
kubectl get pvcSalida de ejemplo:
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE lustre-dynamic-claim Bound csi-lustre-<unique_ID> 30468750000Ki RWX lustre-dyn-storage 4m -
Utilice la nueva PVC al crear otros objetos, como pods. Por ejemplo, puede crear un nuevo pod a partir de la siguiente definición de 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 -
Después de haber creado un nuevo pod como se describe en el ejemplo del paso anterior, puede verificar que el pod está utilizando la nueva PVC introduciendo:
kubectl describe pod lustre-dynamic-app
Si prevé un requisito frecuente de crear nuevos PV y nuevos sistemas de archivos de forma dinámica al crear PVC, puede especificar que la nueva clase de almacenamiento que ha creado se utilice como clase de almacenamiento por defecto para aprovisionar PVC nuevas. Consulte la documentación de Kubernetes para obtener más información.
Encrypting Data At Rest on a New Lustre File System
El servicio File Storage con Lustre siempre cifra los datos estáticos mediante claves de cifrado gestionadas por Oracle por defecto. Sin embargo, tiene la opción de especificar el cifrado estático mediante sus propias claves de cifrado maestras que se gestionan en el servicio Vault.
Según cómo desee cifrar los datos en reposo, siga las instrucciones adecuadas a continuación:
- 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. Los datos se cifran cuando están estáticos mediante claves de cifrado gestionadas por Oracle. - Para utilizar el plugin de volumen CSI para crear dinámicamente un nuevo sistema de archivos Lustre que utiliza claves de cifrado maestras que puede gestionar para cifrar datos estáticos, siga los pasos de Aprovisionamiento una PVC en un nuevo sistema de archivos Lustre File System mediante el plugin de volumen CSI, incluya el parámetro
kmsKeyId: <key-ocid>en la definición de clase de almacenamiento y especifique el OCID de la clave de cifrado maestra en el servicio Vault. Los datos se cifran de forma estática mediante la clave de cifrado que especifique.
Aprovisionamiento de una PVC en el sistema de archivos Lustre File System
Para crear una PVC en un sistema de archivos existente en el servicio File Storage with Lustre (mediante claves de cifrado gestionadas por Oracle para cifrar datos estáticos):
- Cree un sistema de archivos en el servicio File Storage con Lustre, seleccionando la opción de cifrado Cifrar mediante claves gestionadas por Oracle. Consulte Creating a Lustre File System.
- Cree reglas de seguridad en un grupo de seguridad de red (recomendado) o en una lista de seguridad tanto para el sistema de archivos Lustre como para la subred de nodos de trabajador del cluster.Las reglas de seguridad que se van a crear dependen de las ubicaciones de red relativas del sistema de archivos Lustre y de los nodos de trabajador que actúan como cliente, según los siguientes escenarios:
Estos escenarios, las reglas de seguridad que se van a crear y dónde se van a crear, se describen por completo en la documentación del servicio File Storage with Lustre (consulte Reglas de seguridad de VCN necesarias).
- Cree un PV respaldado por el sistema de archivos en File Storage con el servicio Lustre de la siguiente manera:
-
Cree un archivo de manifiesto para definir un PV y, en la sección
csi:, defina:-
De
driveralustre.csi.oraclecloud.com -
De
volumeHandlea<MGSAddress>@<LNetName>:/<MountName>donde:
-
<MGSAddress>es la dirección del servicio de gestión para el sistema de archivos en File Storage con el servicio Lustre -
<LNetName>es el nombre de red LNet para el sistema de archivos en el servicio File Storage con Lustre. -
<MountName>es el nombre de montaje utilizado al crear el sistema de archivos en File Storage con el servicio Lustre.
Por ejemplo:
10.0.2.6@tcp:/testlustrefs -
-
De
fsTypealustre - (Opcional, pero recomendado) De
volumeAttributes.setupLneta"true"si desea que el controlador CSI de Lustre realice la configuración de lnet (red de Lustre) antes de montar el sistema de archivos. - (Opcional)
volumeAttributes.lustreSubnetCidrpara el rango de red de origen del nodo de trabajador utilizado para el tráfico Lustre:- Cuándo utilizar: especifique solo un rango de red si los nodos de trabajador utilizan una VNIC secundaria para conectarse al sistema de archivos Lustre. Este CIDR debe coincidir con el bloque de subred de esa VNIC secundaria (por ejemplo,
10.0.2.0/24). - Cuándo omitir: no especifique un rango de red si los nodos de trabajador utilizan su VNIC principal (la interfaz por defecto) para la conectividad de Lustre.
- Importante: este parámetro es diferente al parámetro
subnetIddel sistema de archivos Lustre, que define dónde se encuentra el sistema de archivos Lustre.
- Cuándo utilizar: especifique solo un rango de red si los nodos de trabajador utilizan una VNIC secundaria para conectarse al sistema de archivos Lustre. Este CIDR debe coincidir con el bloque de subred de esa VNIC secundaria (por ejemplo,
- (Opcional)
volumeAttributes.lustrePostMountParameterspara definir los parámetros de Lustre. Por ejemplo:... volumeAttributes: lustrePostMountParameters: '[{"*.*.*MDT*.lru_size": 11200},{"at_history" : 600}]'
Por ejemplo, el siguiente archivo de manifiesto (lustre-PV-example.yaml) define un PV denominado
lustre-pv-examplerespaldado por un sistema de archivos 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" -
De
- Cree el PV desde el archivo de manifiesto introduciendo:
kubectl apply -f <filename>Por ejemplo:
kubectl apply -f lustre-pv-example.yaml -
Verifique que el PV se ha creado correctamente introduciendo:
kubectl get pv <pv-name>Por ejemplo:
kubectl get pv lustre-pv-exampleSalida de ejemplo:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE lustre-pv-example 30468750000Ki RWX Retain Bound 56m
-
- Cree una PVC aprovisionada por el PV que ha creado, de la siguiente manera:
- Cree un archivo de manifiesto para definir la PVC y defina:
-
storageClassNamea""Tenga en cuenta que debe especificar un valor vacío parastorageClassName, aunque la clase de almacenamiento no sea aplicable en el caso del aprovisionamiento estático del almacenamiento persistente. Si no especifica un valor vacío parastorageClassName, se utiliza la clase de almacenamiento por defecto (oci-bv), lo que provoca un error. -
volumeNameal nombre del PV que ha creado (por ejemplo,lustre-pv-example)
Por ejemplo, el siguiente archivo de manifiesto (denominado lustre-PVC-example.yaml) define una PVC denominada
lustre-pvc-exampleque se enlazará a un PV denominadolustre-pv-example:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: lustre-pvc-example spec: accessModes: - ReadWriteMany storageClassName: "" volumeName: lustre-pv-example resources: requests: storage: 31.2TTenga en cuenta que el elemento
requests: storage:debe estar presente en el archivo de manifiesto de PVC y su valor debe coincidir con el valor especificado para el elementocapacity: storage:en el archivo de manifiesto de PV. Aparte de eso, se ignora el valor del elementorequests: storage:. -
- Cree la PVC desde el archivo de manifiesto introduciendo:
kubectl apply -f <filename>Por ejemplo:kubectl apply -f lustre-pvc-example.yaml -
Verifique que la PVC se ha creado y se ha enlazado al PV correctamente introduciendo:
kubectl get pvc <pvc-name>Por ejemplo:
kubectl get pvc lustre-pvc-exampleSalida de ejemplo:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lustre-pvc-example Bound lustre-pv-example 30468750000Ki RWX 57m
La PVC está enlazada al PV respaldado por el sistema de archivos del servicio File Storage con Lustre. Los datos se cifran estáticos mediante claves de cifrado gestionadas por Oracle.
- Cree un archivo de manifiesto para definir la PVC y defina:
- Utilice la nueva PVC al crear otros objetos, como despliegues. Por ejemplo:
- Cree un manifiesto denominado lustre-app-example-deployment.yaml para definir un despliegue denominado
lustre-app-example-deploymentque utilice la PVClustre-pvc-example, de la siguiente forma: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 - Cree el despliegue a partir del archivo de manifiesto introduciendo:
kubectl apply -f lustre-app-example-deployment.yaml - Verifique que los pods de despliegue se han creado correctamente y se están ejecutando introduciendo:
kubectl get podsSalida de ejemplo:
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
- Cree un manifiesto denominado lustre-app-example-deployment.yaml para definir un despliegue denominado
Aprovisionamiento de una PVC en un Lustre File System existente con opciones de montaje
Puede optimizar el rendimiento y controlar el acceso a un sistema de archivos Lustre existente especificando opciones de montaje para el PV. La especificación de opciones de montaje permite ajustar la forma en que los pods interactúan con el sistema de archivos.
Para incluir opciones de montaje:
- Start by following the instructions in Provisioning a PVC on an Existing Lustre File System.
- En el manifiesto de PV que se describe en Provisioning a PVC on an Existing Lustre File System, agregue el campo
spec.mountOptions, que permite especificar cómo deben montar los PV los pods.Por ejemplo, en el archivo de manifiesto lustre-pv-example.yaml que se muestra en Provisionamiento de una PVC en un Lustre File System existente, puede incluir el campo
mountOptionsde la siguiente manera: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"En este ejemplo, el campo
mountOptionsse define enro, lo que indica que los pods deben tener acceso de solo lectura al sistema de archivos. Para obtener más información sobre las opciones de montaje de PV, consulte Volúmenes persistentes en la documentación de Kubernetes.
Encrypting Data At Rest on an Existing Lustre File System
El servicio File Storage with Lustre siempre cifra los datos estáticos mediante claves de cifrado gestionadas por Oracle por defecto. Sin embargo, tiene la opción de especificar el cifrado estático mediante sus propias claves de cifrado maestras que se gestionan en el servicio Vault.
Para obtener más información sobre File Storage con sistemas de archivos Lustre que utilizan claves de cifrado gestionadas por Oracle o sus propias claves de cifrado maestras que usted mismo gestiona, consulte Actualización del cifrado del sistema de archivos.