Container Network File System (CNFS), File Storage NAS birimlerinden yanlışlıkla silinen dosyaları geri yüklemek için Geri Dönüşüm Kutusu özelliğini destekler ve uygulama verileri için basit ve etkili bir veri koruma katmanı sunar. Bu kılavuzda, CNFS tarafından yönetilen bir NAS birimine NGINX uygulaması dağıtma, bir dosya silme ve bu dosyayı Geri Dönüşüm Kutusundan geri yükleme adımları anlatılmaktadır.
Faturalama
Geri Dönüşüm Kutusu özelliğini etkinleştirmek ücretsizdir. Ancak, Geri Dönüşüm Kutusu'ndaki dosyalar depolama alanı tüketir ve orijinal depolama türünün ücretlendirmesine tabi tutulur. Depolama maliyetlerini sınırlamak için bir saklama süresi belirleyin. Ayrıntılar için bkz. Genel amaçlı NAS dosya sistemlerinin faturalandırılması ve IA depolama sınıfının faturalandırılması.
İzinler
Geri Dönüşüm Kutusu yalnızca dosya sistemi sahibi veya yetkilendirilmiş Resource Access Management (RAM) kullanıcıları tarafından kullanılabilir. Ayrıntılar için bkz. RAM ilkelerine göre erişim kontrolü gerçekleştirme.
Ön koşullar
NAS dosya sistemlerini yönetmek için CNFS kullanan bir küme. Ayrıntılar için bkz. NAS dosya sistemlerini yönetmek için CNFS kullanma.
Küme API sunucusu için internet erişimi etkinleştirilmiştir. Ayrıntılar için bkz. API sunucusu için internet erişimini etkinleştirme.
-
Aşağıdaki minimum sürüm gereksinimlerini karşılayan Container Storage Interface (CSI) bileşenleri:
Bileşen
Minimum sürüm
Referanscsi-pluginvecsi-provisioner
1.20.5-ff6490f-aliyunstorage-operator
1.18.8.56-2aa33ba-aliyun
Adım 1: CNFS tarafından yönetilen NAS birimiyle NGINX uygulamasını dağıtma
Kalıcı birim talebi (PVC), Dağıtım ve LoadBalancer Hizmeti oluşturun. Ardından NAS birimine bir index.html dosyası yazın ve tarayıcı üzerinden erişimi doğrulayın.
CNFS nesne durumunu doğrulama
-
Kümenizdeki CNFS nesnelerini listeleyin:
kubectl get cnfsNAME AGE default-cnfs-nas-7938cef-20210907193713 21h -
CNFS nesnesinin durumunu kontrol edin. Devam etmeden önce CNFS nesnesinin Available durumunda olması gerekir.
kubectl get cnfs default-cnfs-nas-7938cef-20210907193713 -o yaml | grep Availablestatus: Available
PVC oluşturma
alibabacloud-cnfs-nas StorageClass'ına başvuran cnfs-nas-pvc adlı bir PVC oluşturmak için aşağıdaki komutu çalıştırın:
storageClassName alanı bir CNFS StorageClass'ına başvurmalıdır.
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
Dağıtım oluşturma
cnfs-nas-deployment adlı bir Dağıtım oluşturmak için aşağıdaki komutu çalıştırın. Dağıtım, PVC'yi /app dizinine bağlar ve konteyner bağlantı noktası 8080 (adı http) üzerinden erişime açar:
Dağıtım, önceki adımda oluşturulan PVC'ye başvurur.
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
LoadBalancer Hizmeti oluşturma
nginx-default adlı bir LoadBalancer Hizmeti oluşturmak için aşağıdaki komutu çalıştırın. Server Load Balancer (SLB) örneği, Hizmeti genel bir IP adresi üzerinden dışa açar ve HTTP isteklerini app: nginx etiketine sahip pod'lara iletir:
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
NGINX karşılama sayfasını yazma
-
Pod adını alın.
kubectl get podNAME READY STATUS RESTARTS AGE cnfs-nas-deployment-597bc9fb45-cmkss 1/1 Running 0 3h23m -
Pod'da bir kabuk açın ve
/appdizinine gidin:kubectl exec cnfs-nas-deployment-597bc9fb45-cmkss -ti -- sh cd /app -
index.htmldosyasını yazın: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 -
Pod'dan çıkın:
exit
NGINX karşılama sayfasına erişimi doğrulama
-
SLB örneğinin genel IP adresini alın.
kubectl get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-default LoadBalancer 192.168.XX.XX 47.115.XX.XX 80:30989/TCP 20h Tarayıcıda genel IP adresini (örneğin,
47.115.XX.XX) açın. NGINX karşılama sayfası görüntülenir.
Adım 2: Bir dosya silme ve Geri Dönüşüm Kutusundan geri yükleme
index.html dosyasını silerek veri kaybını simüle edin, ardından dosyayı ACK konsolundaki Geri Dönüşüm Kutusu aracılığıyla geri yükleyin.
Dosyayı silme
-
index.htmldosyasını pod'dan silin:kubectl exec cnfs-nas-deployment-597bc9fb45-cmkss -- rm -rf /app/index.html -
Tarayıcıyı yenileyin. NGINX karşılama sayfasına artık erişilemez ve 403 hatası döndürülür.
403 Forbidden nginx/1.16.1
Dosyayı Geri Dönüşüm Kutusundan geri yükleme
CNFS, yönetilen NAS dosya sistemlerinde Geri Dönüşüm Kutusu özelliğini varsayılan olarak etkinleştirir.
ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.
Clusters sayfasında kümenizi bulun ve adına tıklayın. Sol bölmede Volumes > Persistent Volumes seçeneklerini seçin.
Persistent Volumes sayfasında kalıcı birimi (PV) bulun ve Actions sütununda Recycle Bin seçeneğine tıklayın. Bu örnekte PV adı nas-ecaf6018-5250-4e19-b570-5d9e657d23bc şeklindedir.
NAS dosya sistemi sayfasının Recycle Bin sekmesinde Deleted Files and Directories sekmesine tıklayın. Silinen dosyayı bulun ve Actions sütununda Restore seçeneğine tıklayın.
Restore to the original path seçeneğine tıklayın ve ardından OK düğmesine tıklayın.
Tarayıcıyı yenileyin. NGINX karşılama sayfası yeniden görüntülenir; bu durum,
index.htmldosyasının geri yüklendiğini doğrular.
Referanslar
NAS Geri Dönüşüm Kutusu özelliği hakkında daha fazla bilgi için bkz. Geri dönüşüm kutusu.