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
Kluster Anda menggunakan CNFS untuk mengelola sistem file NAS. Informasi lebih lanjut tersedia di Gunakan CNFS untuk mengelola sistem file NAS.
Kluster dapat diakses melalui Internet. Informasi lebih lanjut tersedia di Ekspos server API ke Internet.
Kluster Anda menggunakan komponen Container Storage Interface (CSI). Komponen CSI harus memenuhi persyaratan berikut:
Versi csi-plugin dan csi-provisioner adalah 1.20.5-ff6490f-aliyun atau yang lebih baru. Informasi lebih lanjut tersedia di Perbarui csi-plugin dan csi-provisioner.
Versi storage-operator adalah 1.18.8.56-2aa33ba-aliyun atau yang lebih baru. Informasi lebih lanjut tersedia di Kelola komponen storage-operator.
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
Periksa status objek CNFS.
Pastikan objek CNFS berada dalam status Available.
Jalankan perintah berikut untuk menanyakan objek CNFS:
kubectl get cnfsOutput yang Diharapkan:
NAME AGE default-cnfs-nas-7938cef-20210907193713 21hJalankan perintah berikut untuk melihat status objek CNFS:
kubectl get cnfs default-cnfs-nas-7938cef-20210907193713 -o yaml | grep AvailableOutput yang Diharapkan:
status: Available
Gunakan template YAML berikut untuk membuat PVC.
PentingCNFS 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 EOFGunakan template YAML berikut untuk membuat Deployment.
PentingDeployment 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
http8080 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 EOFGunakan template YAML berikut untuk membuat Service untuk Deployment.
CatatanTemplate 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 EOFTulis file halaman selamat datang NGINX ke jalur
/appdari pod yang sedang Running.Jalankan perintah berikut untuk menanyakan pod:
kubectl get podOutput yang Diharapkan:
NAME READY STATUS RESTARTS AGE cnfs-nas-deployment-597bc9fb45-cmkss 1/1 Running 0 3h23mJalankan perintah berikut untuk beralih ke jalur /app dari pod
cnfs-nas-deployment-597bc9fb45-cmkss:kubectl exec cnfs-nas-deployment-597bc9fb45-cmkss -ti sh cd /appJalankan 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> EOFJalankan perintah berikut untuk keluar dari pod:
exit
Jalankan perintah berikut untuk menanyakan alamat IP publik dari instance SLB:
kubectl get svcOutput 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 20jMasukkan alamat IP publik ke bilah alamat browser. Halaman selamat datang NGINX akan muncul.
Dalam contoh ini, alamat IP publik adalah
47.115.XX.XX.
Langkah 2: Memverifikasi fitur tempat sampah CNFS
Contoh berikut menjelaskan cara memulihkan file yang dihapus dari tempat sampah volume NAS yang dikelola oleh CNFS.
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
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel sebelah kiri, pilih .
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.

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.

Segarkan halaman selamat datang NGINX di browser. Halaman selamat datang NGINX muncul.
Ini menunjukkan bahwa file index.html aplikasi NGINX telah dipulihkan.

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