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) 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 el PVC, el motor de Kubernetes enlaza el PVC al PV respaldado por el servicio File Storage con Lustre.
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:
- El controlador CSI de Lustre está soportado en clusters creados por Kubernetes Engine que ejecutan la versión 1.29 o posterior de Kubernetes.
- 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.
Aprovisionamiento de una PVC en un sistema de archivos existente
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 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).
- 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
driver
alustre.csi.oraclecloud.com
- De
volumeHandle
a<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
fsType
alustre
- (Opcional, pero recomendado) De
volumeAttributes.setupLnet
a"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.lustreSubnetCidr
al bloque CIDR de la subred donde se encuentra la VNIC secundaria del nodo de trabajador, para garantizar que el nodo de trabajador tenga conectividad de red con el sistema de archivos Lustre. Por ejemplo, 10.0.2.0/24.Nota
No especifiquevolumeAttributes.lustreSubnetCidr
si utiliza la interfaz por defecto del nodo de trabajador (la VNIC principal) para conectarse al sistema de archivos de Lustre. - (Opcional)
volumeAttributes.lustrePostMountParameters
para 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-example
respaldado por un sistema de archivos Lustre:apiVersion: v1 kind: PersistentVolume metadata: name: lustre-pv-example spec: capacity: storage: 31Ti 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-example
Salida de ejemplo:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE lustre-pv-example m31Ti 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:
storageClassName
a""
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.volumeName
al 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-example
que 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: 31Ti
Tenga 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 a partir del 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-example
Salida de ejemplo:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lustre-pvc-example Bound lustre-pv-example 31Ti 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-deployment
que 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 pods
Salida 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 sistema de archivos 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:
- Para comenzar, siga las instrucciones de Provisioning a PVC on an Existing File System.
- En el manifiesto PV que se describe en Provisioning a PVC on an Existing File System, agregue el campo
spec.mountOptions
, que le permite especificar cómo deben montar el PV los pods.Por ejemplo, en el archivo de manifiesto lustre-pv-example.yaml que se muestra en Provisioning a PVC on an Existing File System, puede incluir el campo
mountOptions
de la siguiente manera:apiVersion: v1 kind: PersistentVolume metadata: name: lustre-pv-example spec: capacity: storage: 31Ti 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
mountOptions
se 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.
Cifrado de datos estáticos en un sistema de archivos existente
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.
Para obtener más información sobre la creación de File Storage con sistemas de archivos Lustre que utilizan claves de cifrado gestionadas por Oracle o sus propias claves de cifrado maestras gestionadas por usted mismo, consulte Actualización del cifrado del sistema de archivos.