Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Computação
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
Gerenciamento e governança
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
Migração
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álises
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Outros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Segurança e conformidade
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Situation Awareness
Managed Threat Detection
Blockchain
Blockchain Service
Serviços de mídia
Media Processing Center
Video On Demand
Live
SparkRTC
Armazenamento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Cloud Server Backup Service
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bancos de dados
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
Aplicações de negócios
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
Distribuição de conteúdo e computação de borda
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluções
SAP Cloud
High Performance Computing
Serviços para desenvolvedore
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
MacroVerse aPaaS
KooPhone
KooDrive
Central de ajuda/ Cloud Container Engine/ Guia de usuário/ Armazenamento/ Scalable File Service/ Uso de um sistema de arquivos do SFS através de um PV dinâmico

Uso de um sistema de arquivos do SFS através de um PV dinâmico

Atualizado em 2024-11-28 GMT+08:00

Esta seção descreve como usar classes de armazenamento para criar PVs e PVCs dinamicamente e implementar a persistência e o compartilhamento de dados em cargas de trabalho.

Automatically Creating an SFS File System on the Console

  1. Efetue logon no console do CCE e clique no nome do cluster para acessar o console do cluster.
  2. Crie dinamicamente uma PVC e um PV.

    1. Escolha Storage no painel de navegação e clique na guia PersistentVolumeClaims (PVCs). Clique em Create PVC no canto superior direito. Na caixa de diálogo exibida, configure os parâmetros de PVC.

      Parâmetro

      Descrição

      PVC Type

      Neste exemplo, selecione SFS.

      PVC Name

      Digite o nome da PVC, que deve ser exclusivo no mesmo namespace.

      Creation Method

      • Se nenhum armazenamento subjacente estiver disponível, selecione Dynamically provision para criar uma PVC, um PV e armazenamento subjacente no console no modo de cascata.
      • Se o armazenamento subjacente estiver disponível, crie um volume de armazenamento ou use um volume de armazenamento existente para criar estaticamente uma PVC com base em se um PV foi criado. Para mais detalhes, consulte Uso de um sistema de arquivos do SFS existente por meio de um PV estático.

      Neste exemplo, selecione Dynamically provision.

      Storage Classes

      A classe de armazenamento para volumes do SFS é csi-sfs.

      Access Mode

      Os volumes do SFS suportam apenas ReadWriteMany indicando que um volume de armazenamento pode ser montado em vários nós no modo leitura/gravação. Para mais detalhes, consulte Modos de acesso a volume.

    2. Clique em Create para criar uma PVC e um PV.

      Você pode escolher Storage no painel de navegação e exibir a PVC e o PV criados nas páginas de guia PersistentVolumeClaims (PVCs) e PersistentVolumes (PVs), respectivamente.

  3. Crie uma aplicação.

    1. No painel de navegação à esquerda, clique em Workloads. No painel direito, clique na guia Deployments.
    2. Clique em Create Workload no canto superior direito. Na página exibida, clique em Data Storage na área Container Settings e clique em Add Volume para selecionar PVC.
      Monte e use volumes de armazenamento, conforme mostrado na Tabela 1. Para obter detalhes sobre outros parâmetros, consulte Cargas de trabalho.
      Tabela 1 Montagem de um volume de armazenamento

      Parâmetro

      Descrição

      PVC

      Selecione um volume do SFS existente.

      Mount Path

      Digite um caminho de montagem, por exemplo, /tmp.

      Este parâmetro indica o caminho do contêiner no qual um volume de dados será montado. Não monte o volume em um diretório do sistema como / ou /var/run. Caso contrário, os contêineres estarão com defeito. Monte o volume em um diretório vazio. Se o diretório não estiver vazio, verifique se não há arquivos que afetem a inicialização do contêiner. Caso contrário, os arquivos serão substituídos, causando falhas de inicialização do contêiner ou falhas de criação de carga de trabalho.
      AVISO:

      Se um volume for montado em um diretório de alto risco, use uma conta com permissões mínimas para iniciar o contêiner. Caso contrário, arquivos de alto risco no host podem ser danificados.

      Subpath

      Digite um subcaminho, por exemplo, tmp, indicando que os dados no caminho de montagem do contêiner serão armazenados na pasta tmp do volume.

      Um subcaminho é usado para montar um volume local para que o mesmo volume de dados seja usado em um único pod. Se este parâmetro for deixado em branco, o caminho raiz é usado por padrão.

      Permission

      • Read-only: você só pode ler os dados nos volumes montados.
      • Read/Write: você pode modificar os volumes de dados montados no caminho. Os dados recém-gravados não serão migrados se o contêiner for migrado, o que pode causar perda de dados.

      Neste exemplo, o disco é montado no caminho /data do contêiner. Os dados de contêiner gerados nesse caminho são armazenados no sistema de arquivos do SFS.

    3. Após a configuração, clique em Create Workload.

      Depois que a carga de trabalho for criada, os dados no diretório de montagem do contêiner serão armazenados persistentemente. Verifique o armazenamento referindo-se a Verificar a persistência e o compartilhamento de dados.

(kubectl) Criar automaticamente um sistema de arquivos do SFS

  1. Use o kubectl para se conectar ao cluster.
  2. Use StorageClass para criar dinamicamente uma PVC e um PV.

    1. Crie o arquivo pvc-sfs-auto.yaml.
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: pvc-sfs-auto
        namespace: default
        annotations: 
          everest.io/crypt-key-id: <your_key_id>      # (Optional) ID of the key for encrypting file systems
          everest.io/crypt-alias: sfs/default         # (Optional) Key name. Mandatory for encrypting volumes.
          everest.io/crypt-domain-id: <your_domain_id>   # (Optional) ID of the tenant to which an encrypted volume belongs. Mandatory for encrypting volumes.
      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.
      Tabela 2 Parâmetros principais

      Parâmetro

      Obrigatório

      Descrição

      storage

      Sim

      Capacidade solicitada na PVC, em Gi.

      Para buckets do SFS, esse campo é usado apenas para verificação (não pode estar vazio ou 0). Seu valor é fixado em 1, e qualquer valor que você definir não terá efeito para sistemas de arquivos do SFS.

      everest.io/crypt-key-id

      Não

      Este parâmetro é obrigatório quando um sistema do SFS é criptografado. Digite o ID da chave de criptografia selecionada durante a criação do sistema do SFS. Você pode usar uma chave personalizada ou a chave padrão chamada sfs/default.

      Para obter um ID da chave, faça logon no console do DEW, localize a chave a ser criptografada e copie o ID da chave.

      everest.io/crypt-alias

      Não

      Nome da chave, que é obrigatório quando você cria um volume criptografado.

      Para obter um nome de chave, faça logon no console do DEW, localize a chave a ser criptografada e copie o nome da chave.

      everest.io/crypt-domain-id

      Não

      ID do locatário ao qual o volume criptografado pertence. Este parâmetro é obrigatório para criar um volume encriptado.

      Para obter um ID de locatário, passe o cursor sobre o nome de usuário no canto superior direito do console do ECS, escolha My Credentials e copie o ID de conta.

    2. Execute o seguinte comando para criar uma PVC:
      kubectl apply -f pvc-sfs-auto.yaml

  3. Crie uma aplicação.

    1. Crie um arquivo chamado web-demo.yaml. Neste exemplo, o volume do SFS é montado no caminho /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. Execute o seguinte comando para criar uma carga de trabalho na qual o volume do SFS está montado:
      kubectl apply -f web-demo.yaml

      Depois que a carga de trabalho for criada, os dados no diretório de montagem do contêiner serão armazenados persistentemente. Verifique o armazenamento referindo-se a Verificar a persistência e o compartilhamento de dados.

Verificar a persistência e o compartilhamento de dados

  1. Exiba a aplicação implementada e os arquivos.

    1. Execute o seguinte comando para exibir o pod criado:
      kubectl get pod | grep web-demo
      Saída esperada:
      web-demo-846b489584-mjhm9   1/1     Running   0             46s
      web-demo-846b489584-wvv5s   1/1     Running   0             46s
    2. Execute os seguintes comandos em sequência para visualizar os arquivos no caminho /data dos pods:
      kubectl exec web-demo-846b489584-mjhm9 -- ls /data
      kubectl exec web-demo-846b489584-wvv5s -- ls /data

      Se nenhum resultado for retornado para ambos os pods, nenhum arquivo existirá no caminho /data.

  2. Execute o seguinte comando para criar um arquivo chamado static no caminho /data:

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

  3. Execute o seguinte comando para exibir os arquivos no caminho /data:

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

    Saída esperada:

    static

  4. Verifique a persistência dos dados.

    1. Execute o seguinte comando para excluir o pod chamado web-demo-846b489584-mjhm9:
      kubectl delete pod web-demo-846b489584-mjhm9

      Saída esperada:

      pod "web-demo-846b489584-mjhm9" deleted

      Após a eliminação, o controlador de Implementação cria automaticamente uma réplica.

    2. Execute o seguinte comando para exibir o pod criado:
      kubectl get pod | grep web-demo
      A saída esperada é a seguinte, na qual web-demo-846b489584-d4d4j é o pod recém-criado:
      web-demo-846b489584-d4d4j   1/1     Running   0             110s
      web-demo-846b489584-wvv5s    1/1     Running   0             7m50s
    3. Execute o seguinte comando para verificar se os arquivos no caminho /data do pod novo foram modificados:
      kubectl exec web-demo-846b489584-d4d4j -- ls /data

      Saída esperada:

      static

      Se o arquivo static ainda existir, os dados podem ser armazenados persistentemente.

  5. Verifique o compartilhamento de dados.

    1. Execute o seguinte comando para exibir o pod criado:
      kubectl get pod | grep web-demo
      Saída esperada:
      web-demo-846b489584-d4d4j   1/1     Running   0             7m
      web-demo-846b489584-wvv5s   1/1     Running   0             13m
    2. Execute o seguinte comando para criar um arquivo chamado share no caminho /data de qualquer pod: Neste exemplo, selecione o pod chamado web-demo-846b489584-d4d4j.
      kubectl exec web-demo-846b489584-d4d4j --  touch /data/share
      Verifique os arquivos no caminho /data do pod.
      kubectl exec web-demo-846b489584-d4d4j -- ls /data

      Saída esperada:

      share
      static
    3. Verifique se o arquivo share existe no caminho /data de outro pod (web-demo-846b489584-wvv5s) também para verificar o compartilhamento de dados.
      kubectl exec web-demo-846b489584-wvv5s -- ls /data

      Saída esperada:

      share
      static

      Depois de criar um arquivo no caminho /data de um pod, se o arquivo também for criado no caminho /data do outro pod, os dois pods compartilharão o mesmo volume.

Operações relacionadas

Você também pode executar as operações listadas em Tabela 3.
Tabela 3 Operações relacionadas

Operação

Descrição

Procedimento

Visualização de eventos

Você pode visualizar nomes de eventos, tipos de eventos, número de ocorrências, eventos do Kubernetes, horário da primeira ocorrência e horário da última ocorrência da PVC ou do PV.

  1. Escolha Storage no painel de navegação e clique na guia PersistentVolumeClaims (PVCs) ou PersistentVolumes (PVs).
  2. Clique em View Events na coluna Operation da PVC ou do PV de destino para exibir os eventos gerados em uma hora (os dados do evento são mantidos por uma hora).

Exibir um arquivo YAML

Você pode visualizar, copiar e fazer download dos arquivos YAML de uma PVC ou um PV.

  1. Escolha Storage no painel de navegação e clique na guia PersistentVolumeClaims (PVCs) ou PersistentVolumes (PVs).
  2. Clique em View YAML na coluna Operation da PVC ou do PV de destino para exibir ou fazer download do YAML.

Usamos cookies para aprimorar nosso site e sua experiência. Ao continuar a navegar em nosso site, você aceita nossa política de cookies. Saiba mais

Feedback

Feedback

Feedback

0/500

Conteúdo selecionado

Envie o conteúdo selecionado com o feedback