Uso de un sistema de archivos de SFS Turbo existente con un PV estático
SFS Turbo es un sistema de archivos compartido con alta disponibilidad y durabilidad. Es adecuado para aplicaciones que contienen archivos pequeños masivos y requieren baja latencia y alta IOPS. Esta sección describe cómo utilizar un sistema de archivos SFS Turbo existente para crear estáticamente los PV y PVC e implementar la persistencia de datos y el uso compartido en las cargas de trabajo.
Requisitos previos
- Ha creado un clúster e instalado el complemento de CSI (everest) en el clúster.
- Si desea crear un clúster mediante comandos, utilice kubectl para conectarse al clúster. Para obtener más información, véase Conexión a un clúster con kubectl.
- Ha creado un sistema de archivos de SFS Turbo disponible, y el sistema de archivos SFS Turbo y el clúster están en la misma VPC.
Restricciones
- El sistema de archivos de SFS y el clúster deben estar en la misma VPC.
- Varios PV pueden utilizar el mismo sistema de archivos SFS o SFS Turbo con las siguientes restricciones:
- Puede producirse un error si varios PVC/PV que utilizan el mismo sistema de archivos SFS o SFS Turbo subyacente están montados en el mismo pod.
- El parámetro persistentVolumeReclaimPolicy de los PV debe establecerse en Retain. De lo contrario, cuando se elimina un PV, se puede eliminar el volumen subyacente asociado. En este caso, otros PV asociados con el volumen subyacente pueden ser anormales.
- Cuando el volumen subyacente se utiliza repetidamente, se recomienda desplegar ReadWriteMany en la capa de aplicación para evitar la sobreescritura y la pérdida de datos.
- Para el almacenamiento de SFS Turbo, los recursos de SFS Turbo anuales/mensuales no se recuperarán cuando se elimine el clúster o el PVC. Necesita recuperar los recursos en la consola de SFS Turbo.
Uso de un sistema de archivos SFS Turbo existente en la consola
- Inicie sesión en la consola de CCE y acceda a la consola del clúster.
- Cree un PV y PVC estáticamente.
- Elija Storage en el panel de navegación y haga clic en la ficha PersistentVolumeClaims (PVCs). Haga clic en Create PVC en la esquina superior derecha. En el cuadro de diálogo que se muestra, configure los parámetros de PVC.
Parámetro
Descripción
PVC Type
En esta sección, seleccione SFS Turbo.
PVC Name
Escriba el nombre de PVC, que debe ser único en el mismo espacio de nombres.
Creation Method
Puede crear un volumen de almacenamiento o utilizar un volumen de almacenamiento existente para crear estáticamente un PVC en función de si se ha creado un PV.
En este ejemplo, seleccione Create new para crear un PV y un PVC al mismo tiempo en la consola.
PVa
Seleccione un volumen de PV existente en el clúster. Es necesario crear un PV por adelantado. Para obtener más información, consulte "Creación de un volumen de almacenamiento (PV)" de Operaciones relacionadas.
No es necesario especificar este parámetro en este ejemplo.
SFS Turbob
Haga clic en Select SFS Turbo. En la página que se muestra, seleccione el sistema de archivos SFS Turbo que cumpla con sus requisitos y haga clic en OK.
PV Nameb
Introduzca el nombre de PV, que debe ser único en el mismo clúster.
Access Modeb
Los volúmenes de SFS Turbo solo admiten ReadWriteMany, lo que indica que un volumen de almacenamiento se puede montar en varios nodos en modo de lectura/escritura. Para obtener más información, véase Modos de acceso al volumen.
Reclaim Policyb
Solo se admite Retain, lo que indica que el PV no se elimina cuando se elimina el PVC. Para obtener más información, véase Política de reclamo de PV.
Mount Optionsb
Introduzca los pares de clave-valor del parámetro de montaje. Para obtener más información, véase Configuración de las opciones de montaje de SFS Turbo.
a: El parámetro está disponible cuando Creation Method se establece en Use existing.
b: El parámetro está disponible cuando Creation Method se establece en Create new.
- Haga clic en Create para crear un PVC y un PV.
Puede elegir Storage en el panel de navegación y ver el PVC y PV creados en las páginas de fichas PersistentVolumeClaims (PVCs) y PersistentVolumes (PVs).
- Elija Storage en el panel de navegación y haga clic en la ficha PersistentVolumeClaims (PVCs). Haga clic en Create PVC en la esquina superior derecha. En el cuadro de diálogo que se muestra, configure los parámetros de PVC.
- Cree una aplicación.
- En el panel de navegación de la izquierda, haga clic en Workloads. En el panel derecho, haga clic en la ficha Deployments.
- Haga clic en Create Workload en la esquina superior derecha. En la página mostrada, haga clic en Data Storage en el área Container Settings y haga clic en Add Volume para seleccionar PVC.
Montar y utilizar volúmenes de almacenamiento, como se muestra en Tabla 1. Para obtener más información sobre otros parámetros, consulte Workloads.
Tabla 1 Montaje de un volumen de almacenamiento Parámetro
Descripción
PVC
Seleccione un volumen de SFS Turbo existente.
Add Container Path
Configure los parámetros siguientes:- Mount Path: Introduzca una ruta de acceso del contenedor. Por ejemplo, /tmp.
Este parámetro indica la ruta de contenedor en la que se montará un volumen de datos. No monte el volumen en un directorio del sistema como / o /var/run; esta acción puede causar errores de contenedor. Se recomienda montar el volumen en un directorio vacío. Si el directorio no está vacío, asegúrese de que no hay archivos que afecten al inicio de contenedor. De lo contrario, se reemplazarán los archivos, lo que provocará errores de inicio de contenedor o errores de creación de carga de trabajo.AVISO:
Cuando el contenedor está montado en un directorio de alto riesgo, se recomienda utilizar una cuenta con los permisos mínimos para iniciar el contenedor; de lo contrario, los archivos de alto riesgo en la máquina host podrían estar dañados.
- Subpath: Introduzca una ruta secundaria, por ejemplo, tmp.
Se utiliza una ruta secundaria para montar un volumen local de modo que se utilice el mismo volumen de datos en un solo pod. Si este parámetro se deja en blanco, la ruta raíz se utiliza de forma predeterminada.
- Permission
- Read-only: Solo puede leer los datos en los volúmenes montados.
- Read/Write: Puede modificar los volúmenes de datos montados en la ruta de acceso. Los datos recién escritos no se migran si se migra el contenedor, lo que puede causar la pérdida de datos.
Puede hacer clic en
para agregar varias rutas y subrutas.
En este ejemplo, el disco se monta en la trayectoria /data del contenedor. Los datos de contenedor generados en esta ruta se almacenan en el sistema de archivos SFS Turbo.
- Mount Path: Introduzca una ruta de acceso del contenedor. Por ejemplo, /tmp.
- Después de completar la configuración, haga clic en Create.
Una vez creada la carga de trabajo, puede probar Verificación de la persistencia y el uso compartido de datos.
(kubectl) Uso de un sistema de archivos SFS existente
- Utilice kubectl para conectarse al clúster.
- Cree un PV.
- Cree el archivo pv-sfsturbo.yaml.
apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: everest-csi-provisioner name: pv-sfsturbo # PV name. spec: accessModes: - ReadWriteMany # Access mode. The value must be ReadWriteMany for SFS Turbo. capacity: storage: 500Gi # SFS Turbo volume capacity. csi: driver: sfsturbo.csi.everest.io # Dependent storage driver for the mounting. fsType: nfs volumeHandle: <your_volume_id> # SFS Turbo volume ID. volumeAttributes: everest.io/share-export-location: <your_location> # Shared path of the SFS Turbo volume. everest.io/enterprise-project-id: <your_project_id> # Project ID of the SFS Turbo volume. storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisioner persistentVolumeReclaimPolicy: Retain # Reclaim policy. storageClassName: csi-sfsturbo # Storage class name of the SFS Turbo file system. mountOptions: [] # Mount options.
Tabla 2 Parámetros clave Parámetro
Obligatorio
Descripción
volumeHandle
Sí
ID de volumen de SFS Turbo.
Cómo obtenerlo: Inicie sesión en la consola, elija Service List > Storage > Scalable File Service y seleccione SFS Turbo. En la lista, haga clic en el nombre del volumen de SFS Turbo de destino. En la página de detalles, copie el contenido siguiendo ID.
everest.io/share-export-location
Sí
Ruta de acceso compartida del volumen de SFS Turbo.
Inicie sesión en la consola, seleccione Service List > Storage > Scalable File Service y seleccione SFS Turbo. Puede obtener la ruta de acceso compartida del sistema de archivos desde la columna Mount Address.
everest.io/enterprise-project-id
No
ID de proyecto del volumen de SFS Turbo.
Cómo obtenerlo: En la consola de SFS, haga clic en SFS Turbo en el panel de navegación izquierdo. Haga clic en el nombre del sistema de archivos de SFS Turbo para interconectar. En la ficha Basic Info, busque y haga clic en el proyecto de empresa para ir a la consola y copie el ID.
mountOptions
No
Opciones de montaje.
Si no se especifica, se utilizan las siguientes configuraciones de forma predeterminada. Para obtener más información, véase Configuración de las opciones de montaje de SFS Turbo.
mountOptions: - vers=3 - timeo=600 - nolock - hard
persistentVolumeReclaimPolicy
Sí
Se admite una política de recuperación cuando la versión del clúster es o posterior a 1.19.10 y la versión everest es o posterior a 1.2.9.
Solo se admite la política de recuperación Retain. Para obtener más información, véase Política de reclamo de PV.
Retain: Cuando se elimina un PVC, el PV y los recursos de almacenamiento subyacentes no se eliminan. En su lugar, debe eliminar manualmente estos recursos. Después de eso, el PV está en el estado Released y no puede estar ligado al PVC de nuevo.
storage
Sí
Capacidad solicitada en el PVC, en Gi.
storageClassName
Sí
El nombre de clase de almacenamiento de los volúmenes de SFS Turbo es csi-sfsturbo.
- Ejecute el siguiente comando para crear un PV:
kubectl apply -f pv-sfsturbo.yaml
- Cree el archivo pv-sfsturbo.yaml.
- Cree un PVC.
- Cree el archivo pvc-sfsturbo.yaml.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-sfsturbo namespace: default annotations: volume.beta.kubernetes.io/storage-provisioner: everest-csi-provisioner everest.io/enterprise-project-id: <your_project_id> # Project ID of the SFS Turbo volume. spec: accessModes: - ReadWriteMany # The value must be ReadWriteMany for SFS Turbo. resources: requests: storage: 500Gi # SFS Turbo volume capacity. storageClassName: csi-sfsturbo # Storage class of the SFS Turbo volume, which must be the same as that of the PV. volumeName: pv-sfsturbo # PV name.
Tabla 3 Parámetros clave Parámetro
Obligatorio
Descripción
everest.io/enterprise-project-id
No
ID de proyecto del volumen de SFS Turbo.
Cómo obtenerlo: En la consola de SFS, haga clic en SFS Turbo en el panel de navegación izquierdo. Haga clic en el nombre del sistema de archivos de SFS Turbo para interconectar. En la ficha Basic Info, busque y haga clic en el proyecto de empresa para ir a la consola y copie el ID.
storage
Sí
Capacidad solicitada en el PVC, en Gi.
El valor debe ser el mismo que el tamaño de almacenamiento del PV existente.
storageClassName
Sí
Nombre de la clase de almacenamiento, que debe ser el mismo que la clase de almacenamiento del PV en 1.
El nombre de clase de almacenamiento de los volúmenes de SFS Turbo es csi-sfsturbo.
volumeName
Sí
Nombre de PV, que debe ser el mismo que el nombre de PV en 1.
- Ejecute el siguiente comando para crear un PVC:
kubectl apply -f pvc-sfsturbo.yaml
- Cree el archivo pvc-sfsturbo.yaml.
- Cree una aplicación.
- Cree un archivo denominado web-demo.yaml. En este ejemplo, el volumen de SFS Turbo se monta en el camino /data.
apiVersion: apps/v1 kind: Deployment metadata: name: web-demo namespace: default spec: replicas: 2 selector: matchLabels: app: web-demo template: metadata: labels: app: web-demo spec: containers: - name: container-1 image: nginx:latest volumeMounts: - name: pvc-sfsturbo-volume #Volume name, which must be the same as the volume name in the volumes field. mountPath: /data #Location where the storage volume is mounted. imagePullSecrets: - name: default-secret volumes: - name: pvc-sfsturbo-volume #Volume name, which can be customized. persistentVolumeClaim: claimName: pvc-sfsturbo #Name of the created PVC.
- Ejecute el siguiente comando para crear una aplicación en la que esté montado el volumen de SFS Turbo:
kubectl apply -f web-demo.yaml
Una vez creada la carga de trabajo, puede probar Verificación de la persistencia y el uso compartido de datos.
- Cree un archivo denominado web-demo.yaml. En este ejemplo, el volumen de SFS Turbo se monta en el camino /data.
Verificación de la persistencia y el uso compartido de datos
- Vea las aplicaciones y los archivos desplegados.
- Ejecute el siguiente comando para ver los pods creados:
kubectl get pod | grep web-demo
Producto esperado:web-demo-846b489584-mjhm9 1/1 Running 0 46s web-demo-846b489584-wvv5s 1/1 Running 0 46s
- Ejecute los siguientes comandos en secuencia para ver los archivos en la ruta /data de los pods:
kubectl exec web-demo-846b489584-mjhm9 -- ls /data kubectl exec web-demo-846b489584-wvv5s -- ls /data
Si no se devuelve ningún resultado para ambos pods, no existe ningún archivo en la ruta /data.
- Ejecute el siguiente comando para ver los pods creados:
- Ejecute el siguiente comando para crear un archivo llamado static en la ruta /data:
kubectl exec web-demo-846b489584-mjhm9 -- touch /data/static
- Ejecute el siguiente comando para ver los archivos en la ruta /data:
kubectl exec web-demo-846b489584-mjhm9 -- ls /data
Producto esperado:
static
- Verificar la persistencia de los datos.
- Ejecute el siguiente comando para eliminar el pod llamado web-demo-846b489584-mjhm9:
kubectl delete pod web-demo-846b489584-mjhm9
Producto esperado:
pod "web-demo-846b489584-mjhm9" deleted
Después de la eliminación, el controlador de Deployment crea automáticamente una réplica.
- Ejecute el siguiente comando para ver el pod creado:
kubectl get pod | grep web-demo
El resultado esperado es el siguiente, en el que web-demo-846b489584-d4d4j es el pod recién creado:web-demo-846b489584-d4d4j 1/1 Running 0 110s web-demo-846b489584-wvv5s 1/1 Running 0 7m50s
- Ejecute el siguiente comando para comprobar si se han modificado los archivos de la ruta /data del nuevo pod:
kubectl exec web-demo-846b489584-d4d4j -- ls /data
Producto esperado:
static
Si el archivo static todavía existe, los datos se pueden almacenar de forma persistente.
- Ejecute el siguiente comando para eliminar el pod llamado web-demo-846b489584-mjhm9:
- Verifique el uso compartido de datos.
- Ejecute el siguiente comando para ver el pod creado:
kubectl get pod | grep web-demo
Producto esperado:web-demo-846b489584-d4d4j 1/1 Running 0 7m web-demo-846b489584-wvv5s 1/1 Running 0 13m
- Ejecute el siguiente comando para crear un archivo llamado share en la ruta /data de cualquier pod: En este ejemplo, seleccione el pod llamado web-demo-846b489584-d4d4j.
kubectl exec web-demo-846b489584-d4d4j -- touch /data/share
Compruebe los archivos en la ruta /data del pod.kubectl exec web-demo-846b489584-d4d4j -- ls /data
Producto esperado:
share static
- Compruebe si el archivo share existe en la ruta /data de otro pod (web-demo-846b489584-wvv5s) también para verificar el uso compartido de datos.
kubectl exec web-demo-846b489584-wvv5s -- ls /data
Producto esperado:
share static
Después de crear un archivo en la ruta /data de un pod, si el archivo también se crea en la ruta /data de otros pods, los dos pods comparten el mismo volumen.
- Ejecute el siguiente comando para ver el pod creado:
Operaciones relacionadas
Operación |
Descripción |
Procedimiento |
---|---|---|
Creación de un volumen de almacenamiento (PV) |
Cree un PV en la consola de CCE. |
|
Ampliación de la capacidad de un volumen de SFS Turbo |
Amplíe rápidamente la capacidad de un volumen de SFS Turbo montado en la consola de CCE. |
|
Eventos |
Puede ver los nombres de eventos, los tipos de eventos, el número de ocurrencias, los eventos de Kubernetes, la hora de primera ocurrencia y la hora de última ocurrencia del PVC o PV. |
|
Consulta de un archivo YAML |
Puede ver, copiar y descargar los archivos YAML de un PVC o PV. |
|