全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan fitur tong sampah untuk memulihkan data NAS

更新时间:Jul 06, 2025

Container Network File System (CNFS) mendukung fitur tong sampah yang digunakan untuk memulihkan file yang terhapus secara tidak sengaja. Topik ini menjelaskan cara memulihkan file yang dihapus menggunakan fitur tong sampah CNFS. Contoh aplikasi NGINX dengan akses Internet digunakan dalam panduan ini.

Informasi Latar Belakang

Dalam contoh ini, CNFS StorageClass digunakan untuk mengklaim volume, volume tersebut dipasang ke pod aplikasi NGINX, lalu file index.html dihapus dari volume. Setelah penghapusan file index.html, halaman selamat datang NGINX tidak dapat diakses. Untuk memulihkannya, gunakan fitur tong sampah CNFS.

Catatan Penggunaan

  • Penagihan

    Tidak ada biaya untuk mengaktifkan fitur tong sampah. Namun, Anda akan dikenakan biaya untuk ruang penyimpanan yang digunakan oleh file yang disimpan sementara di tong sampah. Biaya penyimpanan dihitung berdasarkan tipe penyimpanan file sebelum penghapusan. Untuk mengurangi biaya, tentukan periode retensi untuk file. Informasi lebih lanjut dapat ditemukan di Penagihan Sistem File NAS Tujuan Umum dan Penagihan Kelas Penyimpanan IA.

  • Izin

    Hanya pemilik sistem file atau pengguna Resource Access Management (RAM) yang berwenang yang dapat menggunakan fitur tong sampah. Informasi lebih lanjut tersedia di Melakukan kontrol akses berdasarkan kebijakan RAM.

Prasyarat

Prosedur

Gunakan CNFS StorageClass untuk membuat volume contoh dan pasang volume tersebut ke pod aplikasi NGINX. Setelah file index.html dihapus, halaman selamat datang NGINX tidak dapat diakses. Untuk memulihkannya, gunakan fitur tong sampah CNFS.

Langkah 1: Buat klaim volume persisten (PVC) dan asosiasikan dengan aplikasi NGINX

  1. Periksa status objek CNFS.

    Pastikan objek CNFS berada dalam status Available.

    1. Jalankan perintah berikut untuk menanyakan objek CNFS:

      kubectl get cnfs

      Output yang Diharapkan:

      NAME                                      AGE
      default-cnfs-nas-7938cef-20210907193713   21h
    2. Jalankan perintah berikut untuk melihat status objek CNFS:

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

      Output yang Diharapkan:

      status: Available
  2. Gunakan template YAML berikut untuk membuat PVC.

    Penting

    CNFS StorageClass dirujuk dalam bidang storageClassName. Nama PVC dalam contoh ini adalah cnfs-nas-pvc, dan StorageClass yang dirujuk adalah alibabacloud-cnfs-nas.

    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
  3. Gunakan template YAML berikut untuk membuat Deployment.

    Penting

    Deployment digunakan untuk merujuk PVC yang dibuat pada langkah sebelumnya. Nama Deployment dalam contoh ini adalah cnfs-nas-deployment, dan nama PVC yang dirujuk adalah cnfs-nas-pvc. PVC dipasang ke jalur /app dalam kontainer, dan port kontainer http 8080 dibuka.

    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
  4. Gunakan template YAML berikut untuk membuat Service untuk Deployment.

    Catatan

    Template YAML berikut digunakan untuk membuat Service LoadBalancer. Instance Server Load Balancer (SLB) digunakan untuk mengekspos Service melalui alamat IP publik, yang memungkinkan akses ke Deployment. Dalam contoh ini, Service LoadBalancer bernama nginx-default dibuat. Service ini meneruskan permintaan HTTP dari Internet ke pod dengan label app:nginx label.

    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
  5. Tulis file halaman selamat datang NGINX ke jalur /app dari pod yang sedang Running.

    1. Jalankan perintah berikut untuk menanyakan pod:

      kubectl get pod 

      Output yang Diharapkan:

      NAME                                   READY   STATUS    RESTARTS   AGE
      cnfs-nas-deployment-597bc9fb45-cmkss   1/1     Running   0          3h23m
    2. Jalankan perintah berikut untuk beralih ke jalur /app dari pod cnfs-nas-deployment-597bc9fb45-cmkss:

      kubectl exec cnfs-nas-deployment-597bc9fb45-cmkss -ti sh
      cd /app
    3. Jalankan perintah berikut untuk menulis file index.html ke jalur /app:

      cat << EOF >> index.html
      <!DOCTYPE html>
      <html>
      <head>
      <title>Selamat Datang di 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>Selamat Datang di nginx!</h1>
      <p>Jika Anda melihat halaman ini, server web nginx berhasil diinstal dan
      berfungsi. Konfigurasi lebih lanjut diperlukan.</p>
      
      <p>Untuk dokumentasi online dan dukungan silakan merujuk ke
      <a href="http://nginx.org/">nginx.org</a>.<br/>
      Dukungan komersial tersedia di
      <a href="http://nginx.com/">nginx.com</a>.</p>
      
      <p></p>
      </body>
      </html>
      EOF
    4. Jalankan perintah berikut untuk keluar dari pod:

      exit
  6. Jalankan perintah berikut untuk menanyakan alamat IP publik dari instance SLB:

    kubectl get svc

    Output yang Diharapkan:

    NAMA            TIPE           CLUSTER-IP        IP-EKSTERNAL      PORT(S)        USIA
    nginx-default   LoadBalancer   192.168.XX.XX     47.115.XX.XX     80:30989/TCP   20j
  7. Masukkan alamat IP publik ke bilah alamat browser. Halaman selamat datang NGINX akan muncul.

    Dalam contoh ini, alamat IP publik adalah 47.115.XX.XX.访问nginx

Langkah 2: Memverifikasi fitur tempat sampah CNFS

Contoh berikut menjelaskan cara memulihkan file yang dihapus dari tempat sampah volume NAS yang dikelola oleh CNFS.

  1. Jalankan perintah berikut untuk menghapus file index.html. Kemudian, segarkan browser untuk melihat halaman selamat datang NGINX.

    kubectl exec cnfs-nas-deployment-597bc9fb45-cmkss -- rm -rf /app/index.html

    nginx403

  2. Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.

  3. Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel sebelah kiri, pilih Volumes > Persistent Volumes.

  4. Di halaman Persistent Volumes, temukan volume persisten (PV) dan klik Recycle Bin di kolom Actions.

    Secara default, fitur tempat sampah sistem file NAS yang dikelola oleh CNFS diaktifkan. Anda dapat memulihkan file index.html di konsol NAS.

    Nama PV dalam contoh ini adalah nas-ecaf6018-5250-4e19-b570-5d9e657d23bc.NAS存储卷Nginx

  5. Di tab Recycle Bin sistem file NAS, klik tab Deleted Files and Directories, lalu klik Restore di kolom Actions.

    恢复删除文件

    Klik Restore to the original path, lalu klik OK.恢复至原路径

  6. Segarkan halaman selamat datang NGINX di browser. Halaman selamat datang NGINX muncul.

    Ini menunjukkan bahwa file index.html aplikasi NGINX telah dipulihkan.访问nginx

Referensi

Untuk informasi tentang fitur recycle bin dari NAS, lihat Recycle bin.