Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Cómputo
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gestión y gobernanza
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migración
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análisis
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Otros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Seguridad y cumplimiento
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Situation Awareness
Managed Threat Detection
Blockchain
Blockchain Service
Servicios multimedia
Media Processing Center
Video On Demand
Live
SparkRTC
Almacenamiento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Contenedores
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bases de datos
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicaciones empresariales
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribución de contenido y cómputo de borde
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluciones
SAP Cloud
High Performance Computing
Servicios para desarrolladores
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
aPaaS MacroVerse
KooPhone
KooDrive
Centro de ayuda/ Cloud Container Engine/ Guía del usuario/ Almacenamiento de contenedores/ Scalable File Service (SFS)/ Uso de un sistema de archivos SFS a través de un PV dinámico

Uso de un sistema de archivos SFS a través de un PV dinámico

Actualización más reciente 2024-09-10 GMT+08:00

En esta sección se describe cómo utilizar las clases de almacenamiento para crear de forma dinámica PV y PVC e implementar la persistencia y el uso compartido de datos en las cargas de trabajo.

Restricciones

  • 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.

(Consola) Creación automática de un sistema de archivos SFS

  1. Inicie sesión en la consola de CCE y acceda a la consola del clúster.
  2. Cree dinámicamente un PVC y un PV.

    1. 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 este ejemplo, seleccione SFS.

      PVC Name

      Escriba el nombre de PVC, que debe ser único en el mismo espacio de nombres.

      Creation Method

      • Si no hay almacenamiento subyacente disponible, puede seleccionar Dynamically provision para crear un almacenamiento de PVC, PV y subyacente en la consola en modo en cascada.
      • Si el almacenamiento subyacente está disponible, 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. Para obtener más información, véase Uso de un sistema de archivos de SFS existente con un PV estático.

      En este ejemplo, seleccione Dynamically provision.

      Storage Classes

      La clase de almacenamiento para los volúmenes SFS es csi-sfs.

      Access Mode

      Los volúmenes de SFS 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.

    2. 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).

  3. Cree una aplicación.

    1. En el panel de navegación de la izquierda, haga clic en Workloads. En el panel derecho, haga clic en la ficha Deployments.
    2. 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 existente.

      Add Container Path

      Configure los parámetros siguientes:
      1. 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.

      2. 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.

      3. 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.

    3. 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) Creación automática de un sistema de archivos SFS

  1. Utilice kubectl para conectarse al clúster.
  2. Utilice StorageClass para crear dinámicamente un PVC y un PV.

    1. Cree el archivo pvc-sfs-auto.yaml.
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: pvc-sfs-auto
        namespace: default
        annotations: {}
      spec:
        accessModes:
          - ReadWriteMany             # The value must be ReadWriteMany for SFS.
        resources:
          requests:
            storage: 1Gi             # SFS volume capacity.
        storageClassName: csi-nas    # The storage class type is SFS.
      Tabla 2 Parámetros clave

      Parámetro

      Obligatorio

      Description

      storage

      Capacidad solicitada en el PVC, en Gi.

      Para SFS, este campo solo se utiliza para verificación (no puede estar vacío ni 0). Su valor se fija en 1 y cualquier valor que establezca no tiene efecto para los sistemas de archivos SFS.

    2. Ejecute el siguiente comando para crear un PVC:
      kubectl apply -f pvc-sfs-auto.yaml

  3. Cree una aplicación.

    1. Cree un archivo denominado web-demo.yaml. En este ejemplo, el volumen de SFS se monta en la ruta /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-sfs-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-sfs-volume    # Volume name, which can be customized.
                persistentVolumeClaim:
                  claimName: pvc-sfs-auto    # Name of the created PVC.
    2. Ejecute el siguiente comando para crear una aplicación en la que se monta el volumen de SFS:
      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.

Verificación de la persistencia y el uso compartido de datos

  1. Vea las aplicaciones y los archivos desplegados.

    1. 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
    2. 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.

  2. Ejecute el siguiente comando para crear un archivo llamado static en la ruta /data:

    kubectl exec web-demo-846b489584-mjhm9 --  touch /data/static

  3. Ejecute el siguiente comando para ver los archivos en la ruta /data:

    kubectl exec web-demo-846b489584-mjhm9 -- ls /data

    Producto esperado:

    static

  4. Verificar la persistencia de los datos.

    1. 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.

    2. 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
    3. 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.

  5. Verifique el uso compartido de datos.

    1. 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
    2. 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
    3. 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.

Operaciones relacionadas

También puede realizar las operaciones que aparecen en Tabla 3.
Tabla 3 Operaciones relacionadas

Operación

Descripción

Procedimiento

Consulta de 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.

  1. Elija Storage en el panel de navegación y haga clic en la ficha PersistentVolumeClaims (PVCs) o PersistentVolumes (PVs).
  2. Haga clic en View Events en la columna Operation del PVC o del PV de destino para ver los eventos generados en una hora (los datos de eventos se conservan durante una hora).

Consulta de un archivo YAML

Puede ver, copiar y descargar los archivos YAML de un PVC o PV.

  1. Elija Storage en el panel de navegación y haga clic en la ficha PersistentVolumeClaims (PVCs) o PersistentVolumes (PVs).
  2. Haga clic en View YAML en la columna Operation del PVC o del PV de destino para ver o descargar el YAML.

Utilizamos cookies para mejorar nuestro sitio y tu experiencia. Al continuar navegando en nuestro sitio, tú aceptas nuestra política de cookies. Descubre más

Comentarios

Comentarios

Comentarios

0/500

Seleccionar contenido

Enviar el contenido seleccionado con los comentarios