ACK içinde CNFS bağlanarak NAS paylaşımlı depolama birimi olarak kullanılabilir. Bir StatefulSet uygulaması örneğinde gösterildiği gibi, CNFS birden fazla uygulama veya Pod'un aynı NAS dosya sistemi dizinini bağlamasına olanak tanıyarak Pod'lar arasındaki veri paylaşımı sorunlarını çözer.
Ön koşullar
-
NAS etkinleştirilmiş olmalıdır.
product page of NAS sayfasını ilk kez ziyaret ediyorsanız ekrandaki talimatları izleyerek NAS hizmetini etkinleştirin.
Kubernetes 1.20 veya sonraki bir sürümü çalıştıran bir Container Service for Kubernetes (ACK) kümesi oluşturulmuş olmalıdır. Birim eklentisi olarak Container Storage Interface (CSI) eklentisi kullanılır. Daha fazla bilgi için bkz. ACK yönetilen küme oluşturma.
csi-plugin ve csi-provisioner sürümleri v1.24.11-5221f79-aliyun veya üzeri olmalıdır. csi-plugin ve csi-provisioner bileşenlerini güncelleme hakkında daha fazla bilgi için bkz. CSI bileşenlerini yükleme ve güncelleme.
storage-operator sürümü v1.24.105-825188d-aliyun veya üzeri olmalıdır. storage-operator bileşenini güncelleme hakkında daha fazla bilgi için bkz. Bileşenleri yönetme.
-
Bir kubectl istemcisi kümenize bağlı olmalıdır. Daha fazla bilgi için bkz. kubectl kullanarak ACK kümesine bağlanma.
NotCNFS hakkında daha fazla bilgi için bkz. CNFS.
CNFS kullanarak NAS dosya sistemlerini yönetme hakkında daha fazla bilgi için bkz. CNFS kullanarak NAS dosya sistemlerini yönetme.
Adım 1: Paylaşılan birim için iş yükü oluşturma
cnfs-nas-static-pvadlı kalıcı birim (PV) oluşturun. PV, daha önce oluşturduğunuz NAS dosya sistemi olancnfs-nas-filesystemadlı CNFS'i referans alır.cnfs-nas-static-pvcadlı kalıcı birim talebi (PVC) oluşturun ve PV'yi PVC'ye bağlayın.cnfs-nas-static-stsadlı StatefulSet oluşturun. StatefulSet, busybox görüntüsünü kullanarak PVC'yi bağlar ve bağlama noktasına 1 GB'lık geçici veri1G.tmpfileyazar.
Adım 2: Bağlama sonucunu görüntüleme
Bağlama sonucunu görüntüleyin:
kubectl exec cnfs-nas-static-sts-0 -- mount |grep nfs
Beklenen çıktı:
971134b0e8-****.cn-zhangjiakou.nas.aliyuncs.com:/ on /data type nfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other)
Beklenen çıktıda bir bağlama noktası görünür; bu durum birimin başarıyla bağlandığını gösterir.
Adım 3: Verilerin birime kalıcı olarak yazılıp yazılmadığını kontrol etme
Dizine 1 GB boyutunda geçici bir dosya yazın:
kubectl exec cnfs-nas-static-sts-0 -ti -- sh -c 'dd if=/dev/zero of=/data/1G.tmpfile bs=1G count=1;'
Geçici dosyanın dizine yazılıp yazılmadığını kontrol edin:
kubectl exec cnfs-nas-static-sts-0 -- ls -arlth /data
Beklenen çıktı:
total 1G
-rw-r--r-- 1 root root 1.0G Dec 15 12:11 1G.tmpfile
Çıktı, 1G.tmpfile dosyasının /data dizinine yazıldığını gösterir.
Adım 4: Verilerin diğer pod'larla paylaşılıp paylaşılmadığını kontrol etme
1 GB'lık geçici dosyanın başka bir Pod olan cnfs-nas-static-sts-1 içinde paylaşılıp paylaşılmadığını kontrol edin:
kubectl exec cnfs-nas-static-sts-1 -- ls -arlth /data
Beklenen çıktı:
total 1G
-rw-r--r-- 1 root root 1.0G Dec 15 12:11 1G.tmpfile
Çıktı, 1G.tmpfile dosyasının cnfs-nas-static-sts-0 ve cnfs-nas-static-sts-1 adlı pod'larda bulunduğunu gösterir.
Farklı Pod'lar arasında paylaşılan depolama verileri yazılırken CNFS veri tutarlılığını garanti etmez. Dosya bozulmasını önlemek için aynı dosyaya birden fazla kez yazmaktan kaçının.
İlgili Konular
Depolama yalıtımı sağlamak amacıyla birden fazla uygulama veya Pod'da NAS dosya sisteminin farklı dizinlerini bağlamanız gerekiyorsa bkz. Yalıtılmış NAS birimlerini yönetmek için CNFS kullanma (önerilen).
NAS depolama birimi kullanımı belirli bir eşiği aştığında otomatik genişletmeyi tetiklemeniz gerekiyorsa bkz. NAS birimlerini otomatik ölçeklendirmek için CNFS kullanma.