File Storage NAS için dinamik hazırlama özelliği sayesinde, iş yükleri için depolamayı talep üzerine otomatik olarak sağlayabilir ve PV'leri önceden oluşturma ihtiyacını ortadan kaldırabilirsiniz. Bu özellik veri kalıcılığı ve paylaşımı sunar; birden fazla Pod'un aynı anda okuma ve yazma işlemi yapmasına olanak tanır. Web uygulamaları ve günlük saklama gibi kullanım senaryolarında depolama yönetimini basitleştirir.
Çalışma şekli
Dinamik birimlerle, bir uygulama PVC oluşturduğunda sistem talebe bağlı olarak yeni bir depolama birimi ve buna karşılık gelen bir PV'yi otomatik olarak oluşturur. Bu hazırlama işlemi, PVC'de belirtilen StorageClass tarafından belirlenir. Bu mod daha fazla esneklik sunar ve depolama biriminin otomatik olarak genişletilmesini destekler.
Bağlama modu
StorageClass içindeki volumeAs parametresiyle bağlama modunu belirtebilirsiniz. Bu parametre, bir PV ile NAS dosya sistemi arasındaki ilişkiyi tanımlar.
Bağlama modu | Açıklama | Senaryo |
Subpath modunda, her PV bir NAS dosya sistemi içindeki benzersiz bir alt dizine eşlenir. Bu mod veri yalıtımını kolaylaştırır. |
| |
Sharepath modunda, tüm PV'ler StorageClass'ta tanımlanan aynı NAS dizinine eşlenir. Dolayısıyla, bu StorageClass'ı kullanan tüm PVC'ler aynı paylaşılan dizine erişir. | Farklı ad alanlarındaki birden fazla Pod'un aynı NAS alt dizinini bağlaması gerekir. | |
filesystem (Önerilmez) | Dosya sistemi modunda, her PV için yeni, özel bir NAS dosya sistemi örneği dinamik olarak oluşturulur. | Bu mod, performans ve güvenlik açısından katı yalıtım gerektiren uygulamalar için uygundur. Her uygulama için bağımsız NAS dosya sistemlerinin ve bağlama hedeflerinin dinamik olarak oluşturulmasını ve silinmesini sağlar ancak daha yüksek maliyete neden olur. |
İş akışı
NAS dinamik birimini bağlama iş akışı aşağıdaki gibidir.
|
Ön koşullar
-
csi-plugin ve csi-provisioner bileşenleri yüklüdür.
CSI bileşenleri varsayılan olarak yüklenir. Yüklü kaldıklarını doğrulayın. Yükleme durumunu sayfasında kontrol edebilirsiniz. CSI bileşenlerini en son sürüme yükseltmenizi öneririz.
-
Subpath ve sharepath kullanmak için aşağıdaki gereksinimleri karşılayan bir Apsara File Storage NAS dosya sistemine ihtiyacınız vardır. Aksi takdirde bir dosya sistemi oluşturun.
NAS'in bağlama bağlantısı, dosya sistemi sayısı ve protokol türleri konusunda sınırlamaları bulunmaktadır.
Protocol: Yalnızca NFS desteklenir.
VPC: Apsara File Storage NAS dosya sistemi, kümenizle aynı VPC'de olmalıdır. Apsara File Storage NAS, alanlar arası bağlamayı destekler ancak VPC'ler arası bağlamayı desteklemez.
Mount Target: Kümenizle aynı VPC'de bulunan ve etkin durumda olan bir bağlama hedefi ekleyin. Daha fazla bilgi için bkz. Bağlama hedeflerini yönetme. Bağlama hedefi adresini not edin.
(İsteğe bağlı) Encryption Type: Bir birimdeki verileri şifrelemek için Apsara File Storage NAS dosya sistemini oluştururken şifreleme türünü yapılandırın.
Kullanım notları
Bağlama hedeflerini silmeyin: Düğüm G/Ç hatalarını önlemek için, ilgili birim kullanımda iken NAS konsolunda bir bağlama hedefini silmeyin.
-
Eş zamanlı yazma işlemleri: NAS paylaşılan depolama sağlar. Birden fazla Pod aynı birimi bağladığında, uygulamanız eş zamanlı yazmalardan kaynaklanan potansiyel veri tutarlılığı sorunlarını ele almalıdır.
NAS'e eş zamanlı yazma işlemlerine ilişkin sınırlamalar hakkında daha fazla bilgi için bkz. Aynı günlük dosyasına birden fazla işlem yazma ve ECS örneklerinde güncellenmiş dosya içeriğini okumada gecikme süresi .
-
Bağlama performansı: Uygulamanızda
securityContext.fsgroupparametresini yapılandırırsanız, kubelet birim bağlandıktan sonra yinelemeli olarakchmodveyachownçalıştırır ve bu durum Pod başlatma süresini önemli ölçüde artırır.Bağlama performansını optimize etmek için bkz. NAS birimi SSS .
Yöntem 1: Subpath kullanarak bir birim bağlama
Bu yöntemde, CSI sağlayıcısı her PersistentVolumeClaim (PVC) için NAS dosya sisteminde özel bir subpath otomatik olarak oluşturur. Bu subpath, PersistentVolume (PV) olarak işlev görür.
CSI eklentisinin sürümü 1.31.4 veya üzeri olmalıdır. Eklentiyi yükseltmek için bkz. CSI eklentisini yükseltme.
Bir NAS dosya sistemi oluşturduysanız ve bağlama hedefinize sahipseniz devam edebilirsiniz.
1. StorageClass oluşturun
StorageClass, dinamik birimleri hazırlamak için bir şablon görevi görür ve depolama kaynaklarının kaynağını ve davranışını tanımlar.
kubectl
-
Aşağıdaki içerikle
alicloud-nas-subpath.yamladlı bir dosya oluşturun:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: # The name of the StorageClass, which must be unique within the cluster. name: alicloud-nas-subpath mountOptions: - nolock,tcp,noresvport - vers=3 parameters: # Set to subpath. volumeAs: subpath # The format of the server field is <nas-server-address>:/<path>. server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com:/k8s" archiveOnDelete: "true" provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: Retain allowVolumeExpansion: trueParametre
Açıklama
mountOptionsNFS protokol sürümü dahil olmak üzere NAS için bağlama seçenekleri. Varsayılan olarak birimler NFSv3 kullanılarak bağlanır.
vers=4.0gibi bir seçenekle farklı bir sürüm belirtebilirsiniz. Farklı NAS türleri tarafından desteklenen NFS protokolleri hakkında bilgi için bkz. NFS protokolleri.parameters.volumeAsBirim hazırlama modu.
subpatholarak ayarlayın.parameters.serverNAS bağlama hedefi ve bağlanacak subpath,
<nas-server-address>:/<path>biçimindedir.<nas-server-address>: NAS dosya sisteminin bağlama hedefi. Daha fazla bilgi için bkz. Bağlama hedeflerini yönetme.:/<path>: Bağlanacak NAS subpath'i. Bu parametre ayarlanmazsa veya belirtilen subpath mevcut değilse, varsayılan olarak kök dizin bağlanır.Genel amaçlı NAS: Kök dizin
/şeklindedir.Extreme NAS: Kök dizin
/shareşeklindedir. Bir subpath bağlarkenpathdeğeri/shareile başlamalıdır, örneğin/share/data.
parameters.archiveOnDeleteBir PVC silindiğinde ve
reclaimPolicydeğeriDeleteolarak ayarlandığında, arka uç depolamadaki verilerin silinip silinmeyeceğini belirtir.Bu seçenek, paylaşılan NAS depolamasında yanlışlıkla veri kaybını önlemek için bir koruma önlemi olarak işlev görür.
true(varsayılan): Dizin ve dosyaları silinmez. Bunun yerine,archived-{pvName}.{timestamp}biçiminde arşivlenir ve yeniden adlandırılır.false: İlgili dizin ve verileri kalıcı olarak silinir.Bu işlem, NAS dosya sisteminin kendisini değil, NAS subpath'ini ve dosyalarını siler.
Bir NAS dosya sistemini silmek için bkz. Dosya sistemi silme.
PV'lerin sıkça oluşturulup silindiği senaryolarda, bu parametrenin
falseolarak ayarlanması CSI denetleyicisinin görev kuyruğunun tıkanmasına ve yeni PV'lerin oluşturulamamasına neden olabilir. Daha fazla bilgi için bkz. Dinamik NAS birimi kullanırken denetleyicinin görev kuyruğu dolu olduğundan yeni PV'ler oluşturulamıyor.provisionerSürücü. Alibaba Cloud NAS CSI eklentisini kullanırken bu parametreyi
nasplugin.csi.alibabacloud.comolarak ayarlayın.reclaimPolicyPV'nin geri alma ilkesi.
Delete(varsayılan): PVC silindiğinde, arka uç depolama verileriarchiveOnDeleteayarına göre işlenir.Retain: PVC silindiğinde, PV ve NAS dosya sistemindeki veriler silinmez ve manuel olarak silinmesi gerekir. Yanlışlıkla veri kaybını önlemek amacıyla yüksek veri güvenliği gerektiren senaryolar için bu ilke önerilir.
allowVolumeExpansionYalnızca Genel amaçlı NAS tarafından desteklenir.
PVC kapasitesini değiştirerek bu StorageClass tarafından oluşturulan PV'lerin dinamik olarak genişletilmesine olanak tanır.
Bu StorageClass, PV kapasitesini yönetmek ve hassas boyut kontrolü sağlamak için NAS dizin kotası özelliğini kullanır. PVC'nin
spec.resources.requests.storagealanını düzenleyerek birimi çevrimiçi olarak genişletebilirsiniz. Daha fazla bilgi için bkz. Dinamik NAS birimleri için dizin kotaları ayarlama.NAS dizin kotaları eşzamansız olarak uygulanır. Bir PV oluşturulduktan veya genişletildikten hemen sonra yüksek hızlı, büyük hacimli veri yazma işlemleri gerçekleştirirseniz, kota henüz tam olarak uygulanmadığından belirtilen kapasiteyi aşabilirsiniz. Daha fazla bilgi için bkz. Kullanım sınırlamaları.
-
StorageClass'ı oluşturun.
kubectl create -f alicloud-nas-subpath.yaml
Console
ACK konsolu oturumunu açın. Sol gezinme bölmesinde Clusters öğesine tıklayın.
Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde seçeneğine tıklayın.
-
Create öğesine tıklayın, küme içinde benzersiz bir StorageClass adı belirtin, PV Type olarak NAS'i seçin ve ardından ekrandaki talimatları izleyerek StorageClass'ı oluşturun.
Anahtar parametreler aşağıdaki tabloda açıklanmıştır.
Parametre
Açıklama
Select Mount Target
NAS dosya sisteminin bağlama hedefi.
Volume Mode
Birim hazırlama modu. Subdirectory seçeneğini belirleyin. Belirtilen bağlama yolu altında otomatik olarak bir subpath oluşturulur. Veriler
<NAS mount target>:<mount path>/<pv-name>/konumunda depolanır.Mount Path
Bağlanacak NAS alt dizini. Bu parametre belirtilmezse, varsayılan olarak kök dizin bağlanır.
Dizin NAS dosya sisteminde mevcut değilse, otomatik olarak oluşturulur ve ardından bağlanır.
Genel amaçlı NAS: Kök dizin
/şeklindedir.Extreme NAS: Kök dizin
/shareşeklindedir. Bir alt dizin bağlarkenpathdeğeri/shareile başlamalıdır, örneğin/share/data.
Reclaim Policy
PV'nin geri alma ilkesi.
Delete(varsayılan): PVC silindiğinde, arka uç depolama verileriarchiveOnDeleteayarına göre işlenir.Retain: PVC silindiğinde, PV ve NAS dosya sistemindeki veriler silinmez ve manuel olarak silinmesi gerekir. Yanlışlıkla veri kaybını önlemek amacıyla yüksek veri güvenliği gerektiren senaryolar için bu ilke önerilir.
Mount Options
NFS protokol sürümü dahil olmak üzere NAS için bağlama seçenekleri. Varsayılan olarak birimler NFSv3 kullanılarak bağlanır.
vers=4.0gibi bir seçenekle farklı bir sürüm belirtebilirsiniz. Farklı NAS türleri tarafından desteklenen NFS protokolleri hakkında bilgi için bkz. NFS protokolleri.StorageClass oluşturulduktan sonra, StorageClasses listesinde görüntüleyebilirsiniz.
2. PVC oluşturun
PersistentVolumeClaim (PVC), ilişkili bir StorageClass'ı eşleşen bir PersistentVolume (PV) dinamik olarak hazırlamaya ve bağlamaya tetikleyen bir uygulamanın depolama talebidir.
kubectl
-
Aşağıdaki içerikle
nas-pvc.yamladlı bir dosya oluşturun:kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-csi-pvc spec: accessModes: - ReadWriteMany # Specify the StorageClass to use. storageClassName: alicloud-nas-subpath resources: requests: # Declare the required capacity of the storage volume. storage: 20GiParametre
Açıklama
accessModesErişim modu. Geçerli değerler:
ReadWriteMany(varsayılan): Birim, birçok düğüm tarafından okuma-yazma olarak bağlanabilir.ReadWriteOnce: Birim, tek bir düğüm tarafından okuma-yazma olarak bağlanabilir.ReadOnlyMany: Birim, birçok düğüm tarafından salt okunur olarak bağlanabilir.
storageClassNameKullanılacak StorageClass'ın adı.
storageGerekli depolama birimi kapasitesi. Varsayılan olarak, bu bildirim bir kaynak isteği olarak işlev görür ve pod için kullanılabilen gerçek depolama alanını sınırlamaz.
Bir NAS dosya sisteminin kapasite sınırı, teknik özellikleri tarafından belirlenir. Daha fazla bilgi için bkz. General-purpose NAS ve Extreme NAS.
Ancak, StorageClass'taki
allowVolumeExpansiondeğeritrueolarak ayarlandığında, bu değer kesin olarak uygulanan sabit bir sınır haline gelir. CSI eklentisi, PV'nin kullanılabilir kapasitesini sınırlamak için bu yapılandırmaya göre NAS dizin kotasını ayarlar. -
PVC'yi oluşturun.
kubectl create -f nas-pvc.yaml -
PV'yi kontrol edin.
kubectl get pvBeklenen çıktı aşağıdakine benzerdir; bu, StorageClass'ın otomatik olarak bir PersistentVolume (PV) hazırladığını ve bunu PVC'ye bağladığını gösterir.
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE nas-a7540d97-0f53-4e05-b7d9-557309****** 20Gi RWX Retain Bound default/nas-csi-pvc alicloud-nas-subpath <unset> 5m
Console
Küme yönetimi sayfasının sol gezinme bölmesinde seçeneğine gidin.
-
Persistent Volume Claims sayfasında Create öğesine tıklayın, PVC parametrelerini yapılandırın ve ardından Create öğesine tıklayın.
Parametre
Açıklama
PVC Type
NAS seçin.
Name
PVC'nin adı. Ad, ad alanı içinde benzersiz olmalıdır.
Allocation Mode
Use StorageClass seçeneğini belirleyin.
Existing Storage Class
Select Storage Class seçeneğine tıklayın ve oluşturduğunuz StorageClass'ı seçin.
Total Capacity
Gerekli depolama birimi kapasitesi. Varsayılan olarak, bu bildirim bir kaynak isteği olarak işlev görür ve pod için kullanılabilen gerçek depolama alanını sınırlamaz.
Bir NAS dosya sisteminin kapasite sınırı, teknik özellikleri tarafından belirlenir. Daha fazla bilgi için bkz. General-purpose NAS ve Extreme NAS.
Ancak, StorageClass'taki
allowVolumeExpansiondeğeritrueolarak ayarlandığında, bu değer kesin olarak uygulanan sabit bir sınır haline gelir. CSI eklentisi, PV'nin kullanılabilir kapasitesini sınırlamak için bu yapılandırmaya göre NAS dizin kotasını ayarlar.Access Mode
Erişim modu. Geçerli değerler:
ReadWriteMany(varsayılan): Birim, birçok düğüm tarafından okuma-yazma olarak bağlanabilir.ReadWriteOnce: Birim, tek bir düğüm tarafından okuma-yazma olarak bağlanabilir.ReadOnlyMany: Birim, birçok düğüm tarafından salt okunur olarak bağlanabilir.
3. Uygulama oluşturma ve NAS bağlama
PVC oluşturulduktan sonra birimi bir uygulamaya bağlayabilirsiniz. Bu bölümde, aynı PVC'yi referans alan iki Dağıtım (Deployment) nasıl oluşturulacağı gösterilir; bu sayede birden fazla pod aynı NAS alt yolunu paylaşabilir.
kubectl
Aynı NAS dosya sisteminin alt yolunu paylaşmalarını sağlamak için aynı PVC'yi referans alan iki Dağıtım oluşturun.
Aynı NAS dosya sisteminden farklı alt yolları farklı pod'lara bağlamak için her alt yol adına benzersiz bir StorageClass ve buna karşılık gelen bir PVC oluşturmanız gerekir.
-
Aşağıdaki içeriğe sahip
nginx-1.yamlvenginx-2.yamladında iki dosya oluşturun.Her iki uygulamanın yapılandırmaları neredeyse aynıdır. Her ikisi de aynı PVC'yi referans alır.
-
-
İki Dağıtımı oluşturun.
kubectl create -f nginx-1.yaml -f nginx-2.yaml -
Pod durumlarını kontrol edin.
kubectl get pod -l app=nginxBeklenen çıktı:
NAME READY STATUS RESTARTS AGE nas-test-1-b75d5b6bc-***** 1/1 Running 0 51s nas-test-2-b75d5b6bc-***** 1/1 Running 0 44s -
Her pod'un doğru Kalıcı Birim Talebini (PVC) kullandığını doğrulamak için pod'u inceleyin.
<podName>değerini her bir pod'un gerçek adıyla değiştirin.kubectl describe pod <podName> | grep "ClaimName:"Beklenen çıktıda, her iki pod da aynı PVC'yi kullanır; bu durum, NAS dosya sisteminin aynı alt yolunu paylaştıklarını doğrular.
Console
NAS dosya sisteminin aynı alt yolunu paylaşmalarını sağlayan, aynı PVC'yi kullanan iki Dağıtım oluşturmak için aşağıdaki adımları tekrarlayın.
ACK Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde seçeneğine tıklayın.
-
öğesine tıklayın ve ekrandaki talimatları izleyerek uygulamayı yapılandırıp oluşturun.
Temel parametreler aşağıda açıklanmıştır. Diğer parametreler için varsayılan değerleri koruyabilirsiniz. Daha fazla bilgi için bkz. Durumsuz uygulama oluşturma (Dağıtım).
Bölüm
Parametre
Açıklama
Basic Information
Replicas:
Dağıtım için çoğaltma sayısı.
Container
Görüntü
Uygulamayı dağıtmak için kullanılan görüntünün adresi.
Required Resources
Konteyner tarafından gereken vCPU ve bellek kaynakları.
Volumes
Add PVC seçeneğine tıklayın ve ardından parametreleri yapılandırın.
Mount Source: Oluşturduğunuz PVC'yi seçin.
: NAS dosya sisteminin konteyner içinde bağlanacağı yolu girin.
Dağıtım tamamlandığında Deployments sayfasında uygulama adına tıklayabilir ve pod'ların düzgün çalıştığını (durumlarının Running olduğunu) onaylamak için Pods sekmesini kontrol edebilirsiniz.
Depolamanın paylaşımlı ve kalıcı olduğunu doğrulamak için bkz. Paylaşımlı ve kalıcı depolamayı doğrulama.
Yöntem 2: sharepath modunu kullanarak bağlama
Bu modda, bu StorageClass'ı kullanan PVC'ler için PV'ler oluşturulduğunda provisioner yeni dizinler oluşturmaz. Bunun yerine, tüm PV'ler StorageClass'ta tanımlanan yolu kullanır ve her PV'yi aynı NAS dizinine eşler.
1. StorageClass oluşturma
StorageClass, dinamik birimleri sağlama için bir şablon görevi görür ve depolama kaynaklarının kaynağını ve davranışını tanımlar.
kubectl
-
Aşağıdaki içeriğe sahip alicloud-nas-sharepath.yaml adında bir dosya oluşturun.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-nas-sharepath mountOptions: - nolock,tcp,noresvport - vers=3 parameters: volumeAs: sharepath # The format of the server field is <nas-server-address>:/<path> server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com:/k8s" provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: RetainParametre
Açıklama
mountOptionsNFS protokol sürümü dahil olmak üzere NAS için bağlama seçenekleri. Varsayılan olarak birimler NFSv3 kullanılarak bağlanır.
vers=4.0gibi bir seçenekle farklı bir sürüm belirtebilirsiniz. Farklı NAS türlerinin desteklediği NFS protokolleri hakkında bilgi için bkz. NFS protokolleri.parameters.volumeAsBirim sağlama modu.
sharepatholarak ayarlayın.parameters.serverNAS bağlama hedefi ve bağlanacak alt yol, biçim:
<nas-server-address>:/<path>.<nas-server-address>: NAS dosya sisteminin bağlama hedefi. Daha fazla bilgi için bkz. Bağlama hedeflerini yönetme.:/<path>: Bağlanacak NAS alt yolu. Bu parametre ayarlanmazsa veya belirtilen alt yol yoksa varsayılan olarak kök dizin bağlanır.Genel amaçlı NAS: Kök dizin
/şeklindedir.Extreme NAS: Kök dizin
/shareşeklindedir. Bir alt yol bağlarkenpathdeğeri/shareile başlamalıdır, örneğin/share/data.
provisionerSürücü. Alibaba Cloud NAS CSI eklentisini kullanırken bu parametreyi
nasplugin.csi.alibabacloud.comolarak ayarlayın.reclaimPolicyPV için geri kazanma ilkesi.
sharepathmodu için bu değer Retain olmalıdır. -
StorageClass'ı oluşturun.
kubectl create -f alicloud-nas-sharepath.yaml
Console
Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde seçeneğine tıklayın.
-
Create öğesine tıklayın, StorageClass için benzersiz bir ad belirtin ve PV Type olarak NAS'ı seçin.
Parametre
Açıklama
Select Mount Target
NAS dosya sisteminin bağlama hedefi.
Volume Mode
Birim sağlama modu. Bu örnekte, sharepath modunu etkinleştiren Shared Directory seçeneğini belirleyin.
Mount Path
Bağlanacak NAS alt dizini. Bu parametre belirtilmezse varsayılan olarak kök dizin bağlanır.
Dizin NAS dosya sisteminde yoksa otomatik olarak oluşturulur ve ardından bağlanır.
Genel amaçlı NAS: Kök dizin
/şeklindedir.Extreme NAS: Kök dizin
/shareşeklindedir. Bir alt dizin bağlarkenpathdeğeri/shareile başlamalıdır, örneğin/share/data.
Geri kazanma ilkesi
sharepathmodu için bu değer Retain olmalıdır.Bağlama seçenekleri
NFS protokol sürümü dahil olmak üzere NAS için bağlama seçenekleri. Varsayılan olarak birimler NFSv3 kullanılarak bağlanır.
vers=4.0gibi bir seçenekle farklı bir sürüm belirtebilirsiniz. Farklı NAS türlerinin desteklediği NFS protokolleri hakkında bilgi için bkz. NFS protokolleri.
2. PVC oluşturma
Kalıcı Birim Talebi (PVC), bir uygulamanın depolama talebidir; bu talep, ilişkili StorageClass'ın eşleşen bir Kalıcı Birimi (PV) dinamik olarak sağlamasına ve bağlamasına tetikleyici olur.
Ad alanları arasında veri paylaşımını etkinleştirmek için iki farklı ad alanında aynı ada sahip bir PVC oluşturacaksınız. PVC'ler aynı adı paylaşsa da farklı ad alanlarında bulundukları için ayrı kaynaklardır. StorageClass, her PVC için ayrı bir PV sağlar ve her iki PV de NAS dosya sistemindeki aynı paylaşılan dizine işaret eder.
kubectl
-
ns1vens2olmak üzere iki ad alanı oluşturun.kubectl create ns ns1 kubectl create ns ns2 -
Hem
ns1hem dens2ad alanlarında aynı ada sahip bir PVC oluşturmak için aşağıdaki içeriğe sahip pvc.yaml adında bir dosya oluşturun.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-csi-pvc namespace: ns1 spec: accessModes: - ReadWriteMany storageClassName: alicloud-nas-sharepath resources: requests: storage: 20Gi --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-csi-pvc namespace: ns2 spec: accessModes: - ReadWriteMany storageClassName: alicloud-nas-sharepath resources: requests: storage: 20GiParametre
Açıklama
accessModesErişim modu. Geçerli değerler:
ReadWriteMany(varsayılan): Birim, birçok düğüm tarafından okuma-yazma olarak bağlanabilir.ReadWriteOnce: Birim, tek bir düğüm tarafından okuma-yazma olarak bağlanabilir.ReadOnlyMany: Birim, birçok düğüm tarafından salt okunur olarak bağlanabilir.
storageClassNameKullanılacak StorageClass'ın adı.
storageDepolama biriminin gerekli kapasitesi. Varsayılan olarak bu bildirim bir kaynak talebi olarak işlev görür ve pod için kullanılabilir gerçek depolama alanını sınırlamaz.
NAS dosya sisteminin kapasite limiti teknik özelliklerine göre belirlenir. Daha fazla bilgi için bkz. Genel amaçlı NAS ve Extreme NAS.
Ancak StorageClass'taki
allowVolumeExpansiondeğeritrueolarak ayarlandığında bu değer kesin olarak uygulanan sabit bir limite dönüşür. CSI eklentisi, PV'nin kullanılabilir kapasitesini sınırlamak için bu yapılandırmaya göre NAS dizin kotasını ayarlar. -
PVC'leri oluşturun.
kubectl create -f pvc.yaml -
PV'lerin otomatik olarak oluşturulduğunu ve PVC'lere bağlandığını onaylamak için PV durumunu kontrol edin.
kubectl get pvBeklenen çıktı aşağıdakine benzer olacaktır. Her iki PV'nin durumu
Boundşeklindedir veCLAIMsütunu her bir PV'nin farklı bir ad alanındaki bir PVC'ye (ns1/nas-csi-pvcvens2/nas-csi-pvc) bağlı olduğunu gösterir.NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE nas-0b448885-6226-4d22-8a5b-d0768c****** 20Gi RWX Retain Bound ns1/nas-csi-pvc alicloud-nas-sharepath <unset> 74s nas-bcd21c93-8219-4a11-986b-fd934a****** 20Gi RWX Retain Bound ns2/nas-csi-pvc alicloud-nas-sharepath <unset> 74s
Console
-
Ad alanları oluşturun.
Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Namespaces and Quotas seçeneğine tıklayın.
Launch öğesine tıklayın ve ekrandaki talimatları izleyerek
ns1vens2ad alanlarını oluşturun.
Küme yönetimi sayfasının sol gezinme bölmesinde seçeneğine gidin.
-
ns1ad alanında bir depolama talebi oluşturun.Persistent Volume Claims sayfasında Namespace açılır listesinden
ns1seçeneğini belirleyin ve ekrandaki talimatları izleyerek PVC'yi oluşturun.Parametre
Açıklama
PVC Type
NAS seçin.
Ad
PVC'nin adı. Ad, ad alanı içinde benzersiz olmalıdır.
Allocation Mode
Use StorageClass seçeneğini belirleyin.
Existing Storage Class
Select Storage Class seçeneğine tıklayın ve oluşturduğunuz StorageClass'ı seçin.
Kapasite
Depolama biriminin gerekli kapasitesi. Varsayılan olarak bu bildirim bir kaynak talebi olarak işlev görür ve pod için kullanılabilir gerçek depolama alanını sınırlamaz.
NAS dosya sisteminin kapasite limiti teknik özelliklerine göre belirlenir. Daha fazla bilgi için bkz. Genel amaçlı NAS ve Extreme NAS.
Ancak StorageClass'taki
allowVolumeExpansiondeğeritrueolarak ayarlandığında bu değer kesin olarak uygulanan sabit bir limite dönüşür. CSI eklentisi, PV'nin kullanılabilir kapasitesini sınırlamak için bu yapılandırmaya göre NAS dizin kotasını ayarlar.Access Mode
Erişim modu. Geçerli değerler:
ReadWriteMany(varsayılan): Birim, birçok düğüm tarafından okuma-yazma olarak bağlanabilir.ReadWriteOnce: Birim, tek bir düğüm tarafından okuma-yazma olarak bağlanabilir.ReadOnlyMany: Birim, birçok düğüm tarafından salt okunur olarak bağlanabilir.
-
ns2ad alanında başka bir PVC oluşturmak için önceki adımı izleyin.Oluşturma işleminden sonra Persistent Volume Claims sayfasına dönün. Hem
ns1hem dens2ad alanlarında her iki PVC'nin otomatik olarak oluşturulan PV'lerine bağlı olduğunu onaylayın.
3. Uygulama oluşturma ve NAS bağlama
PVC'ler oluşturulduktan sonra bunlara bağlı PV'leri uygulamalarınıza bağlayabilirsiniz. Bu bölümde, iki ad alanının her birinde bir uygulama oluşturacak ve ilgili PVC'yi bağlayacaksınız. Bu yapılandırma, her iki uygulamanın da StorageClass'ta tanımlanan NAS alt dizinini paylaşmasını sağlar.
kubectl
-
Aşağıdaki içeriğe sahip
nginx-ns1.yamlvenginx-ns2.yamladında iki dosya oluşturun.Her iki uygulamanın yapılandırmaları neredeyse aynıdır. Her biri kendi ad alanındaki PVC'ye bağlanır.
-
-
İki Dağıtımı oluşturun.
kubectl create -f nginx-ns1.yaml -f nginx-ns2.yaml -
Pod durumunu kontrol edin.
kubectl get pod -A -l app=nginxBeklenen çıktı:
NAMESPACE NAME READY STATUS RESTARTS AGE ns1 nas-test-b75d5b6bc-***** 1/1 Running 0 2m19s ns2 nas-test-b75d5b6bc-***** 1/1 Running 0 2m11s -
PVC bağlantısını onaylamak için bir Pod'un ayrıntılı yapılandırmasını kontrol edin.
<namespace-name>ve<pod-name>değerlerini gerçek ad alanı ve Pod adıyla değiştirin.kubectl describe pod -n <namespace-name> <pod-name> | grep "ClaimName:"Beklenen çıktıda, iki Pod sırasıyla
ns1/nas-csi-pvcvens2/nas-csi-pvcbirimlerini bağlar.
Console
ACK Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde seçeneğine tıklayın.
-
ns1ad alanında bir Dağıtım oluşturun ve ilgili PVC'yi bağlayın.Namespace açılır listesinden Namespace seçeneğini belirleyin ve Create from Image seçeneğine tıklayın.
-
Uygulamayı oluşturmak için ekrandaki talimatları izleyin.
Temel parametreler aşağıda açıklanmıştır. Diğer parametreleri varsayılan değerlerinde bırakın. Daha fazla bilgi için bkz. Durumsuz iş yükü oluşturma (Dağıtım).
Bölüm
Parametre
Açıklama
Basic Information
Replicas:
Dağıtımın çoğaltma sayısı.
Container
Görüntü
Uygulamayı dağıtmak için kullanılan görüntünün adresi.
Required Resources
Gerekli vCPU ve bellek kaynakları.
Volumes
Add PVC seçeneğine tıklayın ve parametreleri yapılandırın.
Mount Source: Oluşturduğunuz PVC'yi seçin.
: NAS dosya sisteminin konteyner içinde bağlanacağı yolu girin, örneğin /data.
-
ns2ad alanında başka bir Dağıtım oluşturmak ve ilgili PVC'yi bağlamak için önceki adımı izleyin.Deployments sayfasına dönün.
ns1vens2ad alanlarında her bir Dağıtımın durumunu kontrol ederek Pod'ların çalıştığını ve doğru PVC'leri bağladığını onaylayın.
Sonuçları doğrulamak için bkz. Paylaşımlı ve kalıcı depolamayı doğrulama.
Yöntem 3: Dosya sistemi modunda birim bağlama
Dosya sistemi modu, bir uygulama için özel bir NAS dosya sistemi ve bağlantı noktasının dinamik olarak oluşturulmasını ve yönetilmesini sağlar. Paylaşılan yol (sharepath) modundan farklı olarak, dosya sistemi modunda oluşturulan her PV ayrı bir NAS dosya sistemi örneğine karşılık gelir.
Her filesystem türündeki PV, özel bir NAS dosya sistemine ve bir bağlantı noktasına karşılık gelir.
-
Varsayılan olarak,
filesystemtüründeki bir PV'yi sildiğinizde ilgili NAS dosya sistemi ve bağlantı noktası korunur. PV silindiğinde NAS dosya sisteminin ve bağlantı noktasının otomatik olarak silinmesini sağlamak için StorageClass'a aşağıdaki parametreleri ekleyin:reclaimPolicy: Deleteparameters.deleteVolume: "true"
-
Bir ACK dedicated cluster kullanırken csi-provisioner bileşenine gerekli izinleri verin.
1. StorageClass oluşturma
2. PVC oluşturma
3. Uygulama oluşturma ve NAS bağlama
Paylaşılan ve kalıcı depolamayı doğrulama
Uygulamayı başarıyla dağıttıktan sonra, depolama biriminin beklendiği gibi çalıştığını doğrulayabilirsiniz. Bu bölümde, doğrulama örneği olarak subpath modu kullanılarak nas-test-1 ve nas-test-2 oluşturulmuştur.
Paylaşılan depolama | Kalıcı depolama |
Paylaşılan depolamayı doğrulamak için bir Pod'da dosya oluşturun ve ardından diğerinde görüntüleyin.
| Kalıcı depolamayı doğrulamak için Deployment'ı yeniden başlatın ve verilerin yeni Pod'un dosya sisteminde hala mevcut olup olmadığını kontrol edin.
|
Üretim ortamları için
-
Güvenlik ve veri koruma
Retain geri alma ilkesini kullanın: StorageClass'ınızın
reclaimPolicydeğeriniRetainolarak ayarlayın. Bu, bir PVC yanlışlıkla silindiğinde veri kaybını önler.Erişim kontrolü için izin gruplarını kullanın: NAS, ağ erişimini yönetmek için izin gruplarını kullanır. En az ayrıcalık ilkesini izleyin: İzin grubuna yalnızca küme düğümlerinin özel IP adreslerini veya vSwitch CIDR bloklarını ekleyin.
0.0.0.0/0gibi aşırı geniş izinlerden kaçının.
-
Performans ve maliyet optimizasyonu
Uygun NAS türünü seçin: Uygulamanızın IOPS ve aktarım hızı gereksinimlerini karşılayan bir NAS türü seçmek için Dosya sistemi seçimi konusuna bakın.
Bağlantı seçeneklerini optimize edin (
mountOptions): İş yükü özelliklerinize göre NFS bağlantı parametrelerini ayarlayın. Örneğin,vers=4.0veyavers=4.1gibi protokol sürümlerini kullanmak bazı senaryolarda performansı ve dosya kilitleme yeteneklerini artırabilir. Büyük ölçekli dosya G/Ç içeren iş yükleri için okuma ve yazma aktarım hızını optimize etmek üzere farklırsizevewsizedeğerlerini test edin.
-
İşlemler ve güvenilirlik
Sağlık kontrollerini yapılandırın: Bağlantı noktasının sağlıklı olduğunu doğrulamak için uygulama pod'larınız için bir liveness probe yapılandırın. Bir bağlantı noktası yanıt vermemeye başlarsa ACK pod'u otomatik olarak yeniden başlatarak depolama biriminin yeniden bağlanmasını tetikler.
İzleme ve uyarıları ayarlayın: Depolama birimi sorunlarını veya performans darboğazlarını hızlı bir şekilde tespit etmek için konteyner depolama izlemeyi kullanarak uyarılar yapılandırın.
Kaynakların serbest bırakılması
Beklenmeyen ücretlerden kaçınmak için NAS depolama birimine artık ihtiyaç duyulmadığında ilişkili kaynakları aşağıdaki sırayla serbest bırakın.
-
İş yükünü silin
İşlem: NAS depolama birimini kullanan tüm iş yüklerini (Deployment'lar ve StatefulSet'ler gibi) silin. Bu, uygulama Pod'larının birimi bağlamasını, okumasını veya üzerine yazmasını engeller.
Örnek komut:
kubectl delete deployment <your-deployment-name>
-
PVC'yi silin
-
İşlem: İş yüküyle ilişkili PVC'yi silin. PVC silindikten sonra, bağlı PV'nin ve arka uç NAS'ın davranışı ilgili StorageClass'ta tanımlanan
reclaimPolicydeğerine bağlıdır.-
Alt yol (Subpath) modu
reclaimPolicydeğeriRetainise: PVC silindikten sonra bağlı PVReleaseddurumuna geçer. PV nesnesi ve arka uç NAS'taki ilgili alt dizin ile veriler korunur ve manuel olarak silinmelidir.-
reclaimPolicydeğeriDeleteise: PVC silindikten sonra bağlı PV otomatik olarak silinir. Arka uç NAS alt dizininin işlenmesiarchiveOnDeleteparametresine bağlıdır:archiveOnDeletedeğeri"true"ise: Arka uç verileri silinmez ancakarchived-{pvName}.{timestamp}olarak yeniden adlandırılır ve arşivlenir.archiveOnDeletedeğeri"false"ise: PV'nin arka uç NAS'taki karşılık gelen alt dizini ve tüm verileri kalıcı olarak silinir. Dikkatli olun.
Bir ACK Serverless kümesinde, izin kısıtlamaları nedeniyle
reclaimPolicy: Deleteyapılandırılmış olsa bile arka uç NAS dizini ve verileri silinmez veya arşivlenmez. Yalnızca PV nesnesi silinir.
-
Paylaşılan yol (Sharepath) modu
Bu mod yalnızca
reclaimPolicydeğeriRetainolan durumu destekler. PVC silindikten sonra bağlı PVReleaseddurumuna geçer. PV nesnesi, arka uç paylaşılan dizini ve tüm veriler korunur. -
Dosya sistemi modu
reclaimPolicydeğeriRetainise: PVC silindikten sonra bağlı PVReleaseddurumuna geçer. PV nesnesi, dinamik olarak oluşturulan arka uç NAS dosya sistemi ve bağlantı noktası korunur.-
reclaimPolicydeğeriDeleteise: PVC silindikten sonra bağlı PV otomatik olarak silinir. Arka uç NAS dosya sisteminin işlenmesideleteVolumeparametresine bağlıdır:deleteVolumedeğeri"false"ise: Arka uç NAS dosya sistemi ve bağlantı noktası korunur ve manuel olarak silinmelidir.deleteVolumedeğeri"true"ise: Arka uç NAS dosya sistemi ve bağlantı noktası otomatik olarak silinir. Dikkatli olun.
-
Örnek komut:
kubectl delete pvc <your-pvc-name>
-
-
PV'yi silin
İşlem: PV
AvailableveyaReleaseddurumundayken silinebilir. Bu işlem yalnızca PV tanımını Kubernetes kümesinden kaldırır ve arka uç NAS dosya sisteminden herhangi bir veriyi silmez.Örnek komut:
kubectl delete pv <your-pv-name>
-
Arka uç NAS dosya sistemini silin (isteğe bağlı)
subpathvesharepathmodları: Dosya sistemi silme konusuna bakın. Bu işlem NAS'taki tüm verileri kalıcı olarak siler ve veriler kurtarılamaz. Dikkatli olun. Bu işlemi gerçekleştirmeden önce NAS'ın iş bağımlılığı olmadığını onaylamanız gerekir.filesystemmodu: Bir PVC sildiğinizde arka uç NAS dosya sistemi otomatik olarak silinmezse, ilgili dosya sistemini bulmak ve manuel olarak silmek için Dosya sistemi silme konusuna bakın.
İlgili belgeler
-
NAS depolama birimlerini bağlarken veya kullanırken sorunlarla karşılaşırsanız sorun giderme için aşağıdaki belgelere bakın.
Geliştirilmiş performans ve QoS kontrolü için NAS dosya sistemlerini bağımsız olarak yönetmek üzere CNFS kullanabilirsiniz. Ayrıntılı talimatlar için CNFS kullanarak NAS dosya sistemlerini yönetme konusuna bakın.
Alt yol kullanılarak bağlanan NAS depolama birimleri dizin kotalarını destekler. Daha fazla bilgi için Dinamik NAS depolama birimleri için dizin kotaları ayarlama konusuna bakın.