Container Network File System (CNFS), NAS dosya sistemlerini bildirim temelli olarak oluşturup kullanabileceğiniz yerel Kubernetes nesneleri gibi yönetmenize olanak tanır. Bu yaklaşım, web siteleri ve veri analitiği gibi iş yükleri için basit ve verimli kalıcı birimler sağlar; veri paylaşımı ve yalıtım gibi çeşitli kullanım senaryolarını destekler.
Ön koşullar
-
Sürüm 1.20 veya üzeri bir ACK Pro managed cluster gereklidir. Küme yükseltmesi için bkz. Bir kümeyi manuel olarak yükseltme.
CNFS'nin kubectl ile yönetilmesi için sürüm 1.20 veya üzeri gerekir.
-
Aşağıdaki depolama eklenti sürümleri gereklidir. Bileşenleri yükseltmek için bkz. Bileşenler.
csi-plugin ve csi-provisioner: v1.24.11-5221f79-aliyun veya üzeri.
storage-operator: v1.26.2-1de13b6-aliyun veya üzeri.
-
File Storage NAS hizmetinin etkinleştirmiş olmanız gerekir. NAS dosya sistemleri için aşağıdaki sınırlamalar geçerlidir. Daha fazla bilgi için bkz. Sınırlamalar.
Yalnızca Capacity, Performance ve Premium türlerindeki General Purpose NAS dosya sistemleri desteklenir; Extreme NAS desteklenmez.
Tek bir üst sınır kapsamında, tek bir hesapla tek bir bölgede oluşturabileceğiniz NAS dosya sistemi sayısı sınırlıdır.
NAS dosya sisteminde KMS şifrelemesi kullanmak için KMS hizmetini etkinleştirin. Daha fazla bilgi için bkz. Key Management Service'i Etkinleştirme.
Yönergeler
NAS dosya sistemi oluşturma
NAS dosya sistemi oluşturma ve kullanma
Başlamadan önce, kümeniz için bir NAS dosya sisteminin nasıl sağlanacağını belirleyin.
Yöntem | Açıklama | Birim sağlama yöntemi | Kullanım senaryoları |
Yöntem 1: Varsayılan bir NAS dosya sistemi oluşturun ve kullanın | CNFS, hızlı bağlama işlemleri için sabit bir yapılandırmaya sahip bir NAS dosya sistemini otomatik olarak oluşturur ve yönetir. | dinamik birim |
|
CNFS, belirttiğiniz parametrelere dayalı olarak yeni ve özelleştirilebilir bir NAS dosya sistemi oluşturur. |
| Performans, şifreleme veya maliyet konusunda özel gereksinimleriniz olduğunda veya ayrıntılı depolama yönetimine ihtiyaç duyduğunuzda kullanılır. | |
Yöntem 3: Mevcut bir NAS dosya sistemini yönetin ve kullanın | CNFS, merkezi yönetim için mevcut bir NAS dosya sistemini entegre eder. |
| Mevcut bir NAS dosya sistemini kümenize entegre etmek istediğiniz durumlar için uygundur. |
Yöntem 1: NAS dosya sistemini otomatik olarak oluşturma
Container Network File System (CNFS) kullanarak varsayılan yapılandırmaya sahip bir NAS dosya sistemini otomatik olarak oluşturabilirsiniz. CNFS, dosya sistemini küme ortamınıza göre oluşturur. Varsayılan olarak dosya sistemi şifrelenmez. Geçerli bölgede Capacity NAS desteklenmiyorsa bunun yerine Performance NAS dosya sistemi oluşturulur.
Bir CNFS kaynağı ve bir StorageClass oluşturduktan sonra, iş yükünüz PersistentVolumeClaim (PVC) kullanarak depolama talebinde bulunabilir. Bu işlem, NAS dosya sistemi üzerinde dinamik olarak bir PersistentVolume (PV) oluşturur ve bunu bir Pod'a bağlar.
kubectl
1. CNFS oluşturun
|
|
2. StorageClass oluşturun Depolama şablonu olarak görev yapacak bir | |
3. PVC oluşturun Uygulama, yapılandırma şablonu olarak StorageClass'a başvurarak bir PVC aracılığıyla bir birim talep eder. | |
4. Uygulama oluşturun ve PVC'yi bağlayın PVC oluşturulduktan sonra Deployment veya StatefulSet gibi örnek bir uygulama dağıtın ve PVC'ye bağlı PV'yi uygulamaya bağlayın. |
|
5. Sonuçları doğrulayın |
|
Console
1. CNFS oluşturun |
|
2. StorageClass oluşturun |
|
3. PVC oluşturun |
|
4. Uygulama oluşturun ve NAS dosya sistemini bağlayın | Bir Deployment veya StatefulSet oluştururken, Container sayfasının Volumes bölümünde bir PVC'yi bir konteynere bağlayabilirsiniz. Aşağıdaki örnekte, CNFS kullanılarak oluşturulan NAS dosya sisteminin bir konteynerdeki /data yoluna nasıl bağlanacağı gösterilmektedir. Yapılandırma ayrıntıları: Volume Type değerini Cloud Storage olarak ayarlayın, Mount Source için ilgili CNFS NAS PVC'sini (örneğin |
Yöntem 2: Özel bir NAS dosya sistemi oluşturun
Container Network File System (CNFS) kullanarak özel parametrelere sahip bir NAS dosya sistemi oluşturun.
Yeni bir NAS dosya sistemi sağlamak için bir
ContainerNetworkFileSystemkaynağı tanımlayın.Statik bir kalıcı birim (PV) veya dinamik bir StorageClass oluşturarak dosya sistemini kümedeki uygulamaların kullanımına sunun.
kubectl
1. Özel bir NAS dosya sistemi oluşturun Depolama türü, şifreleme türü ve vSwitch gibi NAS ayrıntılarını belirtmek için bir |
|
2. PV veya StorageClass oluşturun CNFS'yi oluşturduktan sonra uygulamanızın NAS dosya sistemine nasıl bağlanacağını ve bunu nasıl kullanacağını seçin.
| Statik PVPV parametreleri hakkında daha fazla bilgi için bkz. Statik NAS birimlerini kullanma. Dinamik StorageClassStorageClass parametreleri hakkında daha fazla bilgi için bkz. Dinamik NAS birimlerini kullanma. |
3. PVC oluşturun Daha önce oluşturduğunuz statik kalıcı birime veya dinamik StorageClass'a göre NAS dosya sistemine başvuran kalıcı birim talebi (PVC) oluşturun. | Statik PVDinamik StorageClass |
4. Bir uygulama oluşturun ve NAS dosya sistemini bağlayın Kalıcı birim talebi (PVC) oluşturulduktan sonra bağlı PV'yi uygulamanıza bağlayın. | |
5. Sonucu doğrulayın |
|
Konsol
|
|
| PV
StorageClass
|
|
|
| Bir Dağıtım veya StatefulSet oluştururken Container sayfasının Volumes bölümünde bir PVC'yi bir konteynere bağlayabilirsiniz. Aşağıdaki örnekte, CNFS kullanılarak oluşturulan NAS dosya sisteminin bir konteynerdeki /data yoluna nasıl bağlanacağı gösterilmektedir. Yapılandırma ayrıntıları: Volume Type değerini Cloud Storage olarak ayarlayın, Mount Source için ilgili CNFS NAS PVC'sini (örneğin |
Yöntem 3: Mevcut bir NAS dosya sistemi kullanma
CNFS kullanarak mevcut bir NAS dosya sistemini kümenize bağlayın ve uygulamalarınız tarafından kullanılmasını sağlayın.
kubectl
1. Mevcut bir NAS dosya sistemi için CNFS oluşturma Bir NAS bağlama hedefine başvuran bir |
|
2. PV veya StorageClass oluşturma CNFS'yi oluşturduktan sonra uygulamanızın NAS dosya sistemine nasıl bağlanacağını ve bu sistemi nasıl kullanacağını seçin.
| Statik PVPV parametreleri hakkında daha fazla bilgi için bkz. Statik NAS birimleri kullanma. Dinamik StorageClassStorageClass parametreleri hakkında daha fazla bilgi için bkz. Dinamik NAS birimleri kullanma. |
3. PVC oluşturma Daha önce oluşturduğunuz statik kalıcı birime veya dinamik StorageClass'a dayalı olarak NAS dosya sistemine başvuran bir kalıcı birim talebi (PVC) oluşturun. | Statik PVDinamik StorageClass |
4. Uygulama oluşturma ve NAS dosya sistemini bağlama Kalıcı birim talebi (PVC) oluşturulduktan sonra bağlı PV'yi uygulamanıza bağlayın. | |
5. Sonucu doğrulama |
|
Console
|
|
| PV
StorageClass
|
|
|
| Bir Deployment veya StatefulSet oluştururken Container sayfasının Volumes bölümünde bir PVC'yi bir konteynere bağlayabilirsiniz. Aşağıdaki örnekte, CNFS kullanılarak oluşturulan NAS dosya sisteminin bir konteynerdeki /data yoluna nasıl bağlanacağı gösterilmektedir. Yapılandırma ayrıntıları: Volume Type değerini Cloud Storage olarak ayarlayın, Mount Source için ilgili CNFS NAS PVC'sini (örneğin, |
Paylaşılan ve yalıtılmış depolamayı yapılandırma
NAS dosya sistemini oluşturduktan sonra, uygulamanızın gereksinimlerini karşılamak üzere bunu paylaşılan veya yalıtılmış depolama için yapılandırabilirsiniz.
Paylaşılan bir NAS birimi yapılandırma
Pod'lar arasında veri paylaşmak için bir NAS dosya sistemindeki aynı dizini birden fazla Pod'a paylaşılan bir birim olarak bağlayın.
Nasıl çalışır: Bu yöntem statik bir birim kullanır. PersistentVolume (PV) içinde belirtilen
pathdeğeri, CSI sürücüsünün bağladığı tam dizindir. Birden fazla Pod bu PV'yi aynı PersistentVolumeClaim (PVC) kullanarak bağladığında hepsi aynı dizine erişir ve bu sayede veri paylaşımı sağlanır.Temel yapılandırma: İş yükünüzün Pod şablonunda (
.spec.template),volumesbölümündekipersistentVolumeClaim.claimNameparametresini aynı PVC adına ayarlayın.
1. Belirli bir dizine işaret eden bir PV ve PVC oluşturun | |
2. Örnek bir Deployment oluşturun | |
3. Sonucu doğrulayın |
Yalıtılmış bir NAS birimi yapılandırma
Çoklu kiracılık gibi veri yalıtımı gerektiren kullanım durumları için her Pod'a veya Pod grubuna özel bir depolama dizini sağlayabilirsiniz.
Nasıl çalışır: Bu yöntem dinamik bir birim kullanır. CSI sürücüsü, belirtilen
pathaltında PV ile aynı ada sahip özel bir alt dizini otomatik olarak oluşturur ve bunu bağlama noktası olarak kullanır. Her PVC ayrı bir alt dizine bağlı olduğundan veri yalıtımı sağlanır.-
Temel yapılandırma:
StorageClass'ınızın
parametersbölümündevolumeAs: subpathayarının bulunduğundan emin olun. Bu ayar (varsayılan değerdir) her PVC için özel bir alt dizin oluşturur.StatefulSet tanımında, her Pod için benzersiz bir PVC'yi otomatik olarak oluşturup bağlamak üzere
volumeClaimTemplatesbölümünü kullanın.
1. Dinamik alt dizin oluşturma için bir StorageClass oluşturun | |
2. Örnek bir StatefulSet oluşturun | |
3. Sonucu doğrulayın |
Üretim ortamı önerileri
-
Veri güvenliği
Veri şifreleme: Yeni bir NAS dosya sistemi oluştururken CNFS nesnesinin
parametersbölümündeencryptType: SSE-KMSdeğerini ayarlayın. Bu işlem sunucu taraflı şifrelemeyi etkinleştirir ve veri güvenliğini artırır.Veri koruma ve geri kazanma ilkesi: CNFS nesnesi için
reclaimPolicyher zamanRetainolarak kalır; yani Kubernetes'teki CNFS nesnesini silmek arka plandaki NAS örneğini silmez. Ancak bir PV'nin geri kazanma ilkesi StorageClass'ı tarafından tanımlanır. Üretim ortamları için yanlışlıkla veri kaybını önlemek amacıyla geri kazanma ilkesiniRetainolarak ayarlayın.Geri dönüşüm kutusu: Bir NAS dosya sistemi oluştururken yanlışlıkla veri silinmesini önlemek için
enableTrashCan: "true"ayarıyla geri dönüşüm kutusunu etkinleştirin.Eşzamanlı yazma işlemleri: Birden fazla Pod aynı paylaşılan depolama birimini bağladığında uygulama düzeyinde birden fazla uygulama örneğinin aynı dosyaya yazmasından kaçının. Bu durum eşzamanlı yazmalardan kaynaklanan dosya bozulmalarını engeller.
-
İşlemler ve yönetim
Performans yalıtımı: Yalıtılmış depolama birimleri yalnızca veri düzeyinde yalıtım sağlar. Tüm yalıtılmış birimler aynı arka plan NAS örneğinin IOPS ve aktarım hızını paylaşır. Katı G/Ç performansı gereksinimleri olan ve kararlı gecikme süresi isteyen kritik uygulamalar için özel bir NAS dosya sistemi tahsis edin.
-
Kapasite yönetimi: Depolama biriminin dizin kotasının genişletilmesine izin vermek için StorageClass'ınızda
allowVolumeExpansion: trueayarını yapın.Bir PVC'deki
requests.storagedeğeri öncelikli olarak zamanlama kararları için kullanılır ve tüm NAS dosya sistemi üzerinde sabit bir kota belirlemez. İzleme ve uyarı: Container Storage Monitoring hizmetini kullanarak NAS dosya sisteminizin kapasite kullanımı, IOPS ve aktarım hızı gibi temel ölçümler için uyarılar yapılandırın. Bu sayede kapasite veya performans darboğazlarını hızlı bir şekilde tespit edebilirsiniz.
-
Maliyet optimizasyonu
Doğru depolama türünü seçin: Maliyet ve performans gereksinimlerinize göre bir NAS türü seçin. Rehberlik için bkz. Select a NAS type. Örneğin Capacity NAS, dosya paylaşımı veya arşivleme gibi gecikmeye duyarlı olmayan görevler için uygun daha düşük maliyetli bir seçenektir.
Kaynakları zamanında serbest bırakın: Bir uygulamayı devreden çıkardıktan sonra kullanılmayan tüm kaynakları serbest bırakın. Ayrıca beklenmeyen maliyetlerden kaçınmak için arka plandaki NAS dosya sistemine artık ihtiyaç duyulmuyorsa bunu silin.
Referanslar
Paylaşılan depolamayı, veri yalıtımını ve kalıcı depolamayı doğrulayın
NAS dosya sistemi bağlandıktan sonra, depolamanın beklendiği gibi davrandığını doğrulayın.
-
Dağıtım için paylaşılan ve kalıcı depolamayı doğrulayın
-
StatefulSet için veri yalıtımını ve kalıcı depolamayı doğrulayın
CNFS YAML
CNFS nesnesinin tam yapılandırmasını ve gerçek zamanlı durumunu görüntülemek için kubectl get cnfs/<cnfsName> -o yaml komutunu çalıştırın.
Bu bölüm, Yöntem 2 adresinde açıklanan adımları izleyerek cnfs-nas-filesystem YAML çıktısını görüntülemek amacıyla kubectl get cnfs/cnfs-nas-filesystem -o yaml komutunun çalıştırılmasına ilişkin bir örnek sunar.
YAML örneği
Parametreler
Kaynak temizliği
Beklenmeyen ücretlerden kaçınmak ve veri güvenliğini sağlamak için artık kullanılmayan kaynakları serbest bırakmak üzere aşağıdaki adımları izleyin.
-
İş yükünü silin
Eylem: İlgili PVC'leri kullanan tüm uygulamaları (dağıtımlar ve StatefulSet'ler gibi) silin. Bu işlem pod'ları durdurur ve birimleri ayırır.
Örnek komut:
kubectl delete deployment <YOUR-DEPLOYMENT-NAME>
-
PVC'leri silin
-
Eylem: Uygulama ile ilişkili PVC'yi silin. PV silme işleminin sonucu geri kazanma ilkesine (
reclaimPolicy) bağlıdır.Retain(Önerilen): PVC'yi sildikten sonra arka uçtaki NAS üzerindeki veriler ve dizinler tamamen korunur.-
Delete: Bir PVC silindiğinde buna bağlı PV de silinir. Arka uçtaki NAS üzerindeki veriler ve dizinler,StorageClassiçindekiarchiveOnDeleteparametresinin ayarına göre işlenir."true"(varsayılan): Dizin veya dosya aslında silinmez. Bunun yerinearchived-{pvName}.{timestamp}olarak yeniden adlandırılır."false": Veriler kalıcı olarak silinir. Bu işlem geri alınamaz. Dikkatli kullanın.
Örnek komut:
kubectl delete pvc <YOUR-PVC-NAME>
-
-
PV'yi silin
-
İşlem: PV'yi silin. Bu işlem öncelikli olarak statik PV'ler veya önceki adımda
Retainilkesi kullanıldıktan sonraReleaseddurumunda kalan PV'ler içindir.Bu eylem yalnızca kaynak tanımını Kubernetes'ten kaldırır. Arka uçtaki NAS üzerindeki verileri silmez.
Örnek komut:
kubectl delete pv <YOUR-PV-NAME>
-
-
Kubernetes depolama tanımlarını silin (İsteğe bağlı)
-
Eylem: Artık ihtiyaç duyulmayan StorageClass ve CNFS nesnelerini silin.
Bu eylem yalnızca kaynak tanımlarını Kubernetes'ten kaldırır. Arka uçtaki NAS üzerindeki verileri silmez.
Örnek komutlar:
kubectl delete sc <YOUR-STORAGECLASS-NAME>vekubectl delete cnfs <YOUR-CNFS-NAME>
-
-
Arka uç NAS dosya sistemini silin
Eylem: Bkz. Dosya sistemi silme. Bu geri alınamaz eylem, NAS üzerindeki tüm verileri kalıcı olarak siler. Son derece dikkatli kullanın. Devam etmeden önce başka hiçbir hizmetin bu NAS dosya sistemine bağlı olmadığından emin olun.