Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Restaure arquivos NAS excluídos com a Lixeira do CNFS

Última atualização: Sep 06, 2026

O Container Network File System (CNFS) oferece o recurso de Lixeira para restaurar arquivos excluídos acidentalmente de volumes do File Storage NAS, funcionando como uma barreira de proteção de dados simples e eficaz para aplicações. Este tutorial demonstra como implantar uma aplicação NGINX em um volume NAS gerenciado por CNFS, excluir um arquivo e restaurá-lo pela Lixeira.

Faturamento

Ative a Lixeira é gratuito. No entanto, os arquivos na Lixeira consomem espaço de armazenamento e são cobrados conforme a taxa do tipo de armazenamento original. Defina um período de retenção para limitar os custos de armazenamento. Para mais detalhes, consulte Billing of General-purpose NAS file systems e Billing of the IA storage class.

Permissões

Somente o proprietário do sistema de arquivos ou usuários do Resource Access Management (RAM) autorizados podem usar a Lixeira. Para mais detalhes, consulte Perform access control based on RAM policies.

Pré-requisitos

Etapa 1: Implante a aplicação NGINX com um volume NAS gerenciado por CNFS

Crie uma persistent volume claim (PVC), um Deployment e um Service do tipo LoadBalancer. Em seguida, grave um arquivo index.html no volume NAS e verifique o acesso pelo navegador.

Verifique o status do objeto CNFS

  1. Liste os objetos CNFS no cluster:

       kubectl get cnfs
       NAME                                      AGE
       default-cnfs-nas-7938cef-20210907193713   21h
  2. Verifique o status do objeto CNFS. O objeto deve estar no estado Available antes de prosseguir.

       kubectl get cnfs default-cnfs-nas-7938cef-20210907193713 -o yaml | grep Available
       status: Available

Crie uma PVC

Execute o comando a seguir para criar uma PVC chamada cnfs-nas-pvc que referencie a StorageClass alibabacloud-cnfs-nas:

Importante

O campo storageClassName deve referenciar uma StorageClass do CNFS.

cat << EOF | kubectl apply -f -
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: alibabacloud-cnfs-nas
  resources:
    requests:
      storage: 30Gi
EOF

Crie um Deployment

Execute o comando a seguir para criar um Deployment chamado cnfs-nas-deployment. O Deployment monta a PVC em /app e expõe a porta do container 8080 (nomeada http):

Importante

O Deployment referencia a PVC criada na etapa anterior.

cat << EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
  name: cnfs-nas-deployment
  labels:
    app: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      securityContext:
        runAsUser: 0
      containers:
      - name: nginx
        image: docker.io/bitnami/nginx:1.16.1-debian-9-r56
        volumeMounts:
        - mountPath: "/app"
          name: cnfs-nas-pvc
        ports:
        - containerPort: 8080
          name: http
      volumes:
      - name: cnfs-nas-pvc
        persistentVolumeClaim:
          claimName: cnfs-nas-pvc
EOF

Crie um Service LoadBalancer

Execute este comando para criar um Service LoadBalancer chamado nginx-default. Uma instância do Server Load Balancer (SLB) expõe o Service por meio de um endereço IP público e encaminha requisições HTTP para pods com o rótulo app: nginx:

cat << EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  name: nginx-default
  labels:
    app: nginx
spec:
  type: LoadBalancer
  externalTrafficPolicy: "Cluster"
  ports:
    - name: http
      port: 80
      targetPort: http
  selector:
    app: nginx
EOF

Grave a página de boas-vindas do NGINX

  1. Obtenha o nome do pod.

       kubectl get pod
       NAME                                   READY   STATUS    RESTARTS   AGE
       cnfs-nas-deployment-597bc9fb45-cmkss   1/1     Running   0          3h23m
  2. Abra um shell no pod e navegue até /app:

     kubectl exec cnfs-nas-deployment-597bc9fb45-cmkss -ti -- sh
       cd /app
  3. Grave o arquivo index.html:

       cat << EOF >> index.html
       <!DOCTYPE html>
       <html>
       <head>
       <title>Welcome to nginx!</title>
       <style>
       html { color-scheme: light dark; }
       body { width: 35em; margin: 0 auto;
       font-family: Tahoma, Verdana, Arial, sans-serif; }
       </style>
       </head>
       <body>
       <h1>Welcome to nginx!</h1>
       <p>If you see this page, the nginx web server is successfully installed and
       working. Further configuration is required.</p>
    
       <p>For online documentation and support please refer to
       <a href="http://nginx.org/">nginx.org</a>.<br/>
       Commercial support is available at
       <a href="http://nginx.com/">nginx.com</a>.</p>
    
       <p><em>Thank you for using nginx.</em></p>
       </body>
       </html>
       EOF
  4. Saia do pod:

       exit

Verifique o acesso à página de boas-vindas do NGINX

  1. Obtenha o endereço IP público da instância SLB.

       kubectl get svc
       NAME            TYPE           CLUSTER-IP        EXTERNAL-IP      PORT(S)        AGE
       nginx-default   LoadBalancer   192.168.XX.XX     47.115.XX.XX     80:30989/TCP   20h
  2. Abra o endereço IP público (por exemplo, 47.115.XX.XX) em um navegador. A página de boas-vindas do NGINX será exibida.

Etapa 2: Exclua um arquivo e restaure-o pela Lixeira

Simule a perda de dados excluindo o arquivo index.html e restaure-o pela Lixeira no console ACK.

Exclua o arquivo

  1. Exclua o arquivo index.html do pod:

       kubectl exec cnfs-nas-deployment-597bc9fb45-cmkss -- rm -rf /app/index.html
  2. Atualize o navegador. A página de boas-vindas do NGINX deixará de estar acessível e retornará um erro 403.

    403 Forbidden nginx/1.16.1

Restaure o arquivo da Lixeira

O CNFS ativa a Lixeira por padrão em sistemas de arquivos NAS gerenciados.

  1. Faça login no console ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, localize o cluster e clique no nome dele. No painel à esquerda, escolha Volumes > Persistent Volumes.

  3. Na página Persistent Volumes, localize o persistent volume (PV) e clique em Recycle Bin na coluna Actions. Neste exemplo, o nome do PV é nas-ecaf6018-5250-4e19-b570-5d9e657d23bc.

  4. Na aba Recycle Bin da página do sistema de arquivos NAS, clique na aba Deleted Files and Directories. Localize o arquivo excluído e clique em Restore na coluna Actions.

  5. Clique em Restore to the original path e, em seguida, em OK.

  6. Atualize o navegador. A página de boas-vindas do NGINX reaparecerá, confirmando a restauração do arquivo index.html.

Referências

Para obter mais informações sobre o recurso de Lixeira do NAS, consulte Recycle bin.