NAS birimleri, pod yeniden oluşturulduğunda veri kaybını önleyen veri kalıcılığı ve birden çok pod'un eşzamanlı okuma/yazma erişimine olanak tanıyan veri paylaşımı sağlar. Container Service for Kubernetes (ACK), mevcut NAS dosya sistemlerini statik kalıcı birimler olarak iş yüklerine bağlamanıza olanak tanır.
-
Statik birim: Bir NAS dosya sistemi gibi mevcut bir depolama kaynağını temsil eden Kalıcı Birimi (PV) önceden oluşturmanız gerekir. Uygulama, depolama talebinde bulunmak için Kalıcı Birim Talebi (PVC) oluşturur ve sistem bu PVC'yi uygun şekilde önceden hazırlanmış bir PV ile eşleştirir. Bu yöntem, mevcut depolama kaynaklarını yönetmek için yaygın olarak kullanılır. Ancak, varsayılan olarak bağlı PVC çevrimiçi genişletmeyi desteklemez.
Otomatik birim genişletmeyi kullanmak için bkz. Dinamik NAS birimlerini kullanma veya CNFS kullanarak NAS birimlerini otomatik olarak genişletme .
Dinamik birim: Önceden bir PV oluşturmanıza gerek yoktur. Uygulama bir PVC oluşturduğunda, sistem PVC'de belirtilen StorageClass'a göre talep üzerine otomatik olarak yeni bir birim ve ilgili PV sağlar. Bu yaklaşım daha esnektir ve birim genişletmeyi destekler.
İş akışı
Aşağıdaki diyagram, bir ACK kümesinde statik bir NAS depolama biriminin nasıl bağlanacağını gösterir.
|
Ön koşullar
-
csi-plugin ve csi-provisioner bileşenleri yüklüdür.
CSI bileşenleri varsayılan olarak yüklüdür. Yüklü olduklarından emin olun. Yükleme durumunu sayfasından kontrol edebilirsiniz. CSI bileşenlerini en son sürüme güncellemenizi öneririz.
-
NAS dosya sisteminizin aşağıdaki koşulları karşılaması gerekir. Aksi takdirde, bir dosya sistemi oluşturun veya dinamik olarak sağlanan bir NAS birimi kullanın.
NAS'in bağlantı noktası bağlantısı, dosya sistemi sayısı ve protokol türleri konusunda sınırlamaları bulunmaktadır.
Protocol Type: NFS olmalıdır.
VPC: NAS dosya sistemi, kümeyle aynı VPC'de bulunmalıdır. NAS, kullanılabilirlik alanları arası bağlamayı destekler ancak VPC'ler arası bağlamayı desteklemez.
Mount Target: Kümeyle aynı VPC'de bir bağlantı noktası ekleyin. Durumu Available (Kullanılabilir) olmalıdır. Ayrıntılar için bkz. Bağlantı noktalarını yönetme. Bağlantı noktası adresini not edin.
(İsteğe bağlı) Encryption Type: Birim verilerini şifrelemek için NAS dosya sistemini oluştururken şifreleme türünü yapılandırın.
Kullanım notları
Bağlantı noktalarını silmeyin: Düğüm G/Ç hatalarını önlemek için karşılık gelen birim kullanılırken NAS konsolundan bir bağlantı noktasını silmeyin.
-
Eşzamanlı yazma işlemleri: NAS paylaşılan depolama sağlar. Birden çok Pod aynı birimi bağladığında, uygulamanız eşzamanlı yazmalardan kaynaklanabilecek veri tutarlılığı sorunlarını ele almalıdır.
NAS'e eşzamanlı yazma sınırlamaları hakkında daha fazla bilgi için bkz. Aynı günlük dosyasına birden çok işlem yazma ve ECS örneklerinde güncellenmiş dosya içeriğini okumada gecikme .
-
Bağlama performansı: Uygulamanızda
securityContext.fsgroupparametresini yapılandırırsanız, kubelet birim bağlandıktan sonra yinelemeli olarakchmodveyachownçalıştırır; bu da Pod başlatma süresini önemli ölçüde artırır.Bağlama performansını optimize etmek için bkz. NAS birimi SSS .
Adım 1: Kalıcı Birim (PV) oluşturma
Mevcut bir NAS dosya sistemini kümenizde kullanılabilir hale getirmek için Kalıcı Birim (PV) oluşturun.
Kubectl
-
Aşağıdaki içeriğe sahip
pv-nas.yamladlı bir dosya oluşturun.apiVersion: v1 kind: PersistentVolume metadata: # The name of the PV, which must be unique in the cluster. name: pv-nas # The label of the PV, used for matching with a PVC. labels: alicloud-pvname: pv-nas spec: capacity: # This capacity is for matching purposes only. The actual capacity is determined by the NAS file system. storage: 5Gi accessModes: - ReadWriteMany # The reclaim policy for the PV. persistentVolumeReclaimPolicy: Retain csi: # The driver. This value is fixed when you use a NAS volume. driver: nasplugin.csi.alibabacloud.com # Must be the same as metadata.name. volumeHandle: pv-nas volumeAttributes: server: "0c47****-mpk25.cn-shenzhen.nas.aliyuncs.com" # Replace this value with the address of your NAS mount target. # The NAS subdirectory to mount. If the subdirectory does not exist, it is automatically created. path: "/csi" mountOptions: - nolock,tcp,noresvport - vers=3Parametre
Açıklama
storagePV'nin kapasitesi. Bu değer yalnızca Kalıcı Birim Talebi (PVC) ile eşleştirme amacıyla kullanılır ve gerçek kullanılabilir kapasiteyi sınırlamaz. Uygulamanızın kullanılabilir depolama kapasitesi, NAS dosya sisteminin toplam kapasitesi ile sınırlıdır.
Bir NAS dosya sisteminin maksimum kapasitesi teknik özellikleri tarafından belirlenir. Daha fazla bilgi için bkz. Genel Amaçlı NAS ve Extreme NAS.
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.
persistentVolumeReclaimPolicyPV için geri alma ilkesi. Bu ilke, bağlı Kalıcı Birim Talebi (PVC) silindiğinde PV'nin ve arka plandaki NAS verilerinin ne olacağını tanımlar.
Retain(Önerilen): PVC silindikten sonra PV,Releaseddurumuna geçer. Arka plandaki NAS verileri korunur ve manuel olarak silinmesi gerekir.Delete: İlişkili PVC silindiğinde PV'yi siler. Bu ilkearchiveOnDeletegerektirir. Ancak, statik PV'lerarchiveOnDeleteözelliğini desteklemez. Bu nedenle, bu ilkeDeleteolarak ayarlandığında, PVC'nin silinmesi PV'yi veya NAS dosya sistemindeki dosyaları silmez.archiveOnDeleteyapılandırmak için bkz. Dinamik olarak sağlanan NAS birimlerini kullanma.
driverSürücü. Alibaba Cloud NAS CSI eklentisini kullanırken bu parametreyi
nasplugin.csi.alibabacloud.comolarak ayarlayın.volumeHandleArka plan depolama sistemindeki birim için benzersiz bir tanımlayıcı. Bu, PV adı (
metadata.name) ile aynı olmalıdır. Birden çok PV kullanıyorsanız, bu değer her PV için benzersiz olmalıdır.serverNAS bağlantı noktasının adresi.
Bağlantı noktası adresini bulmak için bkz. Bağlantı noktalarını yönetme.
pathBağ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 dizini bağlarkenpathdeğeri/shareile başlamalıdır, örneğin/share/data.
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. -
PV'yi oluşturun.
kubectl create -f pv-nas.yaml -
PV'nin durumunu ve özelliklerini kontrol edin.
kubectl get pvBeklenen çıktı:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE pv-nas 5Gi RWX Retain Available <unset> 25sÇıktı, PV'nin başarıyla oluşturulduğunu, 5 Gi kapasiteye sahip olduğunu ve henüz bir Kalıcı Birim Talebi (PVC) ile bağlanmadığını gösteren
Availabledurumunda olduğunu gösterir.
Console
ACK konsolu oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.
Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde seçeneğine tıklayın.
-
Persistent Volumes sayfasında Create seçeneğine tıklayın. Görüntülenen iletişim kutusunda parametreleri yapılandırın ve ardından Create seçeneğine tıklayın.
Parametre
Açıklama
PV Type
NAS seçin.
Volume Name:
Küme içinde benzersiz olması gereken PV adı.
Capacity
PV'nin kapasitesi. Bu değer yalnızca Kalıcı Birim Talebi (PVC) ile eşleştirme amacıyla kullanılır ve gerçek kullanılabilir kapasiteyi sınırlamaz. Uygulamanızın kullanılabilir depolama kapasitesi, NAS dosya sisteminin toplam kapasitesi ile sınırlıdır.
Bir NAS dosya sisteminin maksimum kapasitesi teknik özellikleri tarafından belirlenir. Daha fazla bilgi için bkz. Genel Amaçlı NAS ve Extreme NAS.
Access Mode
Erişim modunu yapılandırın. Geçerli değerler:
ReadWriteMany: Birim, birden çok düğüm tarafından okuma-yazma olarak bağlanabilir.
ReadWriteOnce: Birim, tek bir düğüm tarafından okuma-yazma olarak bağlanabilir.
Enable CNFS
Otomatik işletme ve bakım, önbellek hızlandırma ve performans izleme özelliklerinden yararlanmak için Container Network File System (CNFS) kullanımını belirtir.
Mevcut bir NAS dosya sistemini CNFS ile yönetmek için bkz. CNFS tarafından yönetilen bir NAS dosya sistemi oluşturma (Önerilen).
Mount Target Domain Name:
Bu parametre yalnızca CNFS devre dışı bırakıldığında görüntülenir.
NAS bağlantı noktasının adresi.
Adresi almak için bkz. Bağlantı noktalarını yönetme.
Select Mount Target: Daha önce eklenmiş bir bağlantı noktasının adresini seçin.
Custom: Bağlama adresi olarak özel bir alan adı kullanın. Özel alan adının hedef NAS bağlantı noktasına çözümlendiğinden emin olun.
Advanced Options (Optional)
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 dizini bağlarkenpathdeğeri/shareile başlamalıdır, örneğin/share/data.
Reclaim Policy
Retain (varsayılan): PVC silindiğinde PV ve NAS dosyaları silinmez. Bunları manuel olarak silmeniz gerekir.
Delete: İlişkili PVC silindiğinde PV'yi siler. Bu ilke
archiveOnDeletegerektirir. Ancak, statik PV'lerarchiveOnDeleteözelliğini desteklemez. Bu nedenle, bu ilkeDeleteolarak ayarlandığında, PVC'nin silinmesi PV'yi veya NAS dosya sistemindeki dosyaları silmez.archiveOnDeleteyapılandırmak için bkz. Dinamik olarak sağlanan NAS birimlerini kullanma.
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.Labels
PV'ye uygulanacak etiketler.
PV oluşturulduktan sonra, Persistent Volumes sayfasında görüntüleyebilirsiniz.
Adım 2: PVC oluşturma
Uygulamanız için kalıcı depolama talep etmek amacıyla Kalıcı Birim Talebi (PVC) oluşturun.
kubectl
-
Daha önce oluşturulan PV'ye bağlanmak için
pvc-nas.yamladlı bir dosya oluşturun.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-nas # The PVC name, which must be unique within the namespace. spec: accessModes: - ReadWriteMany resources: requests: storage: 5Gi selector: matchLabels: alicloud-pvname: pv-nas # Matches the PV created earlier by its label.Parametre
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.
storageBu değer, eşleşen bir PV bulmak için kullanılır ve gerçek depolama kapasitesini sınırlamaz.
Bir NAS dosya sisteminin maksimum kapasitesi teknik özellikleri tarafından belirlenir. Daha fazla bilgi için bkz. Genel Amaçlı NAS ve Extreme NAS.
matchLabelsBağlama için bir PV seçmek amacıyla kullanılan etiketi belirtir.
-
PVC'yi oluşturun.
kubectl create -f pvc-nas.yaml -
PVC'nin durumunu kontrol edin.
kubectl get pvcBeklenen çıktı:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE pvc-nas Bound pv-nas 5Gi RWX <unset> 5sÇıktı, pvc-nas PVC'sinin pv-nas PV'sine Bağlı (Bound) olduğunu ve bir uygulama tarafından kullanıma hazır olduğunu gösterir.
Console
Küme yönetim sayfasının sol gezinme bölmesinde seçeneğine gidin.
-
Persistent Volume Claims sayfasında Create seçeneğine tıklayın ve aşağıdaki tabloda açıklandığı gibi parametreleri yapılandırın.
Parametre
Açıklama
PVC Type
NAS seçin.
Name
Ad alanı içinde benzersiz olması gereken PVC adı.
Allocation Mode
Mevcut Kalıcı Birim'i seçin.
Bu konuda önceki adımda oluşturulan PV kullanılmaktadır. Henüz bir PV oluşturmadıysanız Allocation Mode değerini Create PV olarak ayarlayabilirsiniz.
Existing Volumes
Daha önce oluşturulan PV'yi seçin.
Capacity
Bu değer, eşleşen bir PV bulmak için kullanılır ve gerçek depolama kapasitesini sınırlamaz.
Bir NAS dosya sisteminin maksimum kapasitesi teknik özellikleri tarafından belirlenir. Daha fazla bilgi için bkz. Genel Amaçlı NAS ve Extreme NAS.
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.
Adım 3: Uygulama oluşturma ve NAS bağlama
PVC'yi oluşturduktan sonra, bağlı PV'yi bir uygulamaya bağlayabilirsiniz.
kubectl
-
Aşağıdaki içeriğe sahip
deploy.yamladlı bir dosya oluşturun. Bu bildirim, daha önce oluşturduğunuz PVC'ye başvurur.Bu kurulum, NAS'in paylaşılan depolama özelliğini doğrulamanıza olanak tanır.
-
Dağıtımı oluşturun.
kubectl create -f deploy.yaml -
Pod'ların durumunu kontrol edin.
kubectl get pod -l app=nginxBeklenen çıktı:
NAME READY STATUS RESTARTS AGE nas-test-****-***a 1/1 Running 0 32s nas-test-****-***b 1/1 Running 0 32s
Console
Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde seçeneğine tıklayın.
-
Deployments sayfasında Create from Image seçeneğine tıklayın ve uygulama parametrelerini yapılandırın.
Aşağıdaki tabloda ana parametreler açıklanmaktadır. Diğer parametreler için varsayılan değerleri koruyabilirsiniz. Daha fazla bilgi için bkz. Durumsuz iş yükü oluşturma (Dağıtım).
Kategori
Parametre
Açıklama
Basic Information
Application Name
Dağıtımın adı.
Replicas:
Dağıtım için kopya sayısı.
Bu kurulum, NAS'in paylaşılan depolama özelliğini doğrulamanıza olanak tanır.
Container
Image Name
Uygulama görüntüsünün adresi.
Required Resources
Gerekli sanal CPU ve bellek kaynakları.
Volume
Add PVC seçeneğine tıklayın ve parametreleri yapılandırın.
Mount Source: Daha önce oluşturduğunuz PVC'yi seçin.
Container Path: NAS dosya sisteminin bağlanacağı kapsayıcı içindeki yol, örneğin
/data.
Dağıtım tamamlandığında, Deployments sayfasına gidin ve uygulamanın adına tıklayın. Pods sekmesinde Pod'ların Running durumunda olduğunu doğrulayın.
Paylaşılan ve kalıcı depolamayı doğrulama
Uygulamayı dağıttıktan sonra, birimin beklendiği gibi çalıştığını doğrulayın.
Paylaşılan depolama | Kalıcı depolama |
Paylaşılan depolamayı doğrulamak için bir pod'da bir dosya oluşturun ve ardından başka bir pod'da kontrol edin.
| Kalıcı depolamayı doğrulamak için Dağıtımı yeniden başlatın ve verilerin yeni pod'larda kalıcı olup olmadığını kontrol edin.
|
Üretim ortamına hazırlık
-
Güvenlik ve erişim yönetimi
Erişim denetimi 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 uygulayın: İ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 bölümüne bakın.
Bağlama seçeneklerini optimize edin (
mountOptions): İş yükü özelliklerinize göre NFS bağlama 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 amacıyla farklırsizevewsizedeğerlerini test edin.
-
İşletim ve güvenilirlik
Sağlık kontrollerini yapılandırın: Bağlama noktasının sağlıklı olduğundan emin olmak için uygulama pod'larınız için bir liveness probe (canlılık yoklaması) yapılandırın. Bir bağlama noktası yanıt vermez hale gelirse, ACK pod'u otomatik olarak yeniden başlatır ve 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.
Retaingeri alma ilkesini kullanın: Üretim verileri için PV'ninpersistentVolumeReclaimPolicydeğeriniRetainolarak ayarlayın. Bu, ilgili PVC kaldırıldığında arka plandaki NAS dosya sisteminde yanlışlıkla veri kaybını önler.
Kaynakları serbest bırakma
Beklenmeyen ücretlerden kaçınmak için NAS birimine artık ihtiyaç duymadığınızda kaynakları aşağıdaki sırayla serbest bırakın.
-
İş yüklerini silin
NAS birimini kullanan tüm uygulamaları (Dağıtımlar ve StatefulSets gibi) silin. Bu işlem, birimi Pod'lardan ayırır ve tüm okuma/yazma erişimini durdurur.
Örnek komut:
kubectl delete deployment <your-deployment-name>
-
PVC'yi silin
Uygulama ile ilişkili PVC'yi silin. PVC silindikten sonra bağlı PV'ye ne olacağı
persistentVolumeReclaimPolicydeğerine bağlıdır.-
Geri alma ilkesi:
Retain(önerilen): Bir PVC silindikten sonra, bağlı PVReleaseddurumuna geçer. PV nesnesi ve arka plandaki NAS dosya sistemindeki veriler korunur. Bunları manuel olarak silmeniz gerekir.-
Delete: Bir PVC silindikten sonra, karşılık gelen PV nesnesi de silinir. Aşağıdakileri dikkate alın:PV, NAS dosya sisteminin kök dizinine işaret ediyorsa, yanlışlıkla silinmeyi önlemek için dosya sistemindeki veriler korunur.
Statik bir PV'nin
volumeHandledeğeripathdeğerinin bir son eki ise (örneğin,volumeHandledeğeriappvepathdeğeri/exports/appise), PVC'nin silinmesi arka plandaki NAS dosya sistemindeki alt dizinin otomatik olarak silinmesini tetikler. Bu özelliği dikkatli kullanın.
Örnek komut:
kubectl delete pvc <your-pvc-name>
-
PV'yi silin
Durumu
AvailableveyaReleasedolan bir PV'yi silebilirsiniz. Bu işlem, yalnızca PV tanımını Kubernetes kümesinden kaldırır ve arka plandaki NAS dosya sistemindeki verileri silmez.Örnek komut:
kubectl delete pv <your-pv-name>
-
Arka plandaki NAS dosya sistemini silin (isteğe bağlı)
Bkz. Dosya sistemi silme. Bu işlem, NAS dosya sistemindeki tüm verileri kalıcı olarak siler ve geri alınamaz. Devam etmeden önce hiçbir iş yükünün dosya sistemine bağlı olmadığından emin olun.
Referanslar
-
NAS birimlerini bağlarken veya kullanırken sorunlarla karşılaşırsanız aşağıdaki belgelere bakın:
CNFS, performansı artırmak ve QoS denetimi sağlamak için NAS dosya sistemlerini bağımsız olarak yönetmenize olanak tanır. Daha fazla bilgi için bkz. CNFS ile NAS dosya sistemlerini yönetme.