Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Manage NAS file systems using CNFS

Son Güncelleme:Oct 06, 2026

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.

image

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

  • Özelliklerin hızla doğrulanması gereken durumlar için uygundur.

  • Altta yatan depolama ayrıntılarını yönetmenize gerek kalmaz. Ancak, oluşturulan NAS dosya sisteminin yapılandırması sabittir. Depolama türünü seçemez, şifrelemeyi özelleştiremez veya geri dönüşüm kutusunu ince ayarlarla düzenleyemezsiniz.

Yöntem 2: Özel bir NAS dosya sistemi oluşturun ve kullanın

CNFS, belirttiğiniz parametrelere dayalı olarak yeni ve özelleştirilebilir bir NAS dosya sistemi oluşturur.

  • dinamik birim

  • statik birim

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.

  • dinamik birim

  • statik birim

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

ContainerNetworkFileSystem nesnesi oluşturun. server parametresini veya diğer özel parametreleri belirtmezseniz CNFS varsayılan bir NAS dosya sistemi oluşturur.
apiVersion: storage.alibabacloud.com/v1beta1
    kind: ContainerNetworkFileSystem
    metadata:
      name: cnfs-nas-filesystem
    spec:
      description: "cnfs"
      type: nas
      # Only Retain is supported. The backend NAS instance is not deleted when the CNFS is deleted.
      reclaimPolicy: Retain
      parameters:
        # Specifies whether to enable NAS-managed encryption. Set to SSE-KMS to enable this feature.
        encryptType: SSE-KMS
        # Specifies whether to enable the recycle bin feature. Set to "true" to enable it.
        enableTrashCan: "true"

Parametreler

Parametre

Açıklama

description

CNFS açıklaması.

type

Birim türü. Değeri nas olarak ayarlayın.

reclaimPolicy

Geri kazanma ilkesi. Şu anda yalnızca Retain desteklenir. Bu ilke, CNFS nesnesi silindiğinde arka uçtaki NAS dosya sisteminin silinmemesini sağlayarak veri kaybını önler.

parameters.encryptType

İsteğe bağlı. Şifreleme yöntemini belirtir.

  • None: Şifrelemeyi devre dışı bırakır.

  • SSE-KMS: NAS tarafından yönetilen şifrelemeyi etkinleştirir. Her dosya sistemini şifrelemek için NAS tarafından tamamen yönetilen bir anahtar kullanılır. Bu anahtar, Key Management Service (KMS) içinde NAS tarafından oluşturulur ve yönetilir.

parameters.enableTrashCan

Yanlışlıkla dosya silinmesi kaynaklı iş kesintilerini ve veri kaybını önlemek için geri dönüşüm kutusunu etkinleştirir.

  • true: Özelliği etkinleştirir.

  • false: Özelliği devre dışı bırakır.

  • Oluşturulan NAS dosya sistemini görüntülemek için kubectl get cnfs komutunu çalıştırın.

  • NAS dosya sisteminin ayrıntılarını görüntülemek için kubectl get cnfs/cnfs-nas-filesystem -o yaml komutunu çalıştırın.

    YAML parametreleri hakkında daha fazla bilgi için bkz. CNFS YAML referansı.

2. StorageClass oluşturun

Depolama şablonu olarak görev yapacak bir StorageClass nesnesi oluşturun. Daha önce oluşturduğunuz CNFS ile ilişkilendirmek için containerNetworkFileSystem parametresini kullanın.
apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alibabacloud-cnfs-nas
    provisioner: nasplugin.csi.alibabacloud.com
    parameters:
      # A separate subdirectory is created under the NAS root directory for each PVC.
      volumeAs: subpath
      # Associates with the CNFS defined above.
      containerNetworkFileSystem: cnfs-nas-filesystem
      path: "/"
    # We recommend setting this to Retain to preserve the backend subdirectory data when the PVC is deleted.
    reclaimPolicy: Retain
    # Allows volume expansion.
    allowVolumeExpansion: true
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3

3. PVC oluşturun

Uygulama, yapılandırma şablonu olarak StorageClass'a başvurarak bir PVC aracılığıyla bir birim talep eder.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: alibabacloud-cnfs-nas
  resources:
    requests:
      # If allowVolumeExpansion is true, the value of storage is used as the quota for the subdirectory corresponding to this PVC. The maximum amount of data that can be written to the dynamically created directory is 70 GiB.
      storage: 70Gi  

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.
  • Deployment: Tüm Pod çoğaltmaları aynı PVC'ye başvurur ve verileri paylaşmak için arka uçtaki NAS dosya sisteminde aynı dizini bağlar.

    Örnek kod

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: cnfs-nas-deployment
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            volumeMounts:
            - mountPath: "/data"
              name: cnfs-nas-pvc
          volumes:
          - name: cnfs-nas-pvc
            persistentVolumeClaim:
              claimName: cnfs-nas-pvc
  • StatefulSet: volumeClaimTemplates şablonunu kullanarak her Pod çoğaltması için benzersiz bir PVC otomatik olarak oluşturulur. Her PVC, veri izolasyonu sağlamak amacıyla arka uçtaki NAS dosya sistemindeki özel bir alt dizine bağlanır.

    Örnek kod

    apiVersion: apps/v1
        kind: StatefulSet
        metadata:
          name: cnfs-nas-sts
          labels:
            app: nginx
        spec:
          serviceName: "nginx"
          replicas: 2
          selector:
            matchLabels:
              app: nginx
          template:
            metadata:
              labels:
                app: nginx
            spec:
              containers:
              - name: nginx
                image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
                volumeMounts:
                - mountPath: "/data"
                  name: www
          volumeClaimTemplates:
          - metadata:
              name: www
            spec:
              accessModes: [ "ReadWriteOnce" ]
              storageClassName: "alibabacloud-cnfs-nas"
              resources:
                requests:
                  # If allowVolumeExpansion is true, the storage parameter takes effect. The maximum amount of data that can be written to the dynamically created directory is 50 GiB.
                  storage: 50Gi 

5. Sonuçları doğrulayın

Console

1. CNFS oluşturun

  1. ACK konsoluna giriş yapın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

  2. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Volumes > CNFS seçeneğine tıklayın.

  3. Create CNFS File System seçeneğine tıklayın ve ekrandaki talimatları izleyerek CNFS'i yapılandırın.

    • NAS Dosya Sistemi'ni seçin

    • Create Default NAS File System seçeneğini belirleyin

    CNFS oluşturulduktan sonra, CNFS listesinde adına tıklayarak ayrıntılarını görüntüleyebilirsiniz. Ardından, oluşturulan NAS dosya sisteminin ayrıntılar sayfasına gitmek için NAS Kimliği'ne tıklayın. Mount Targets sekmesine tıklayın. Bağlama hedefinin adresini Mount Target sütununda bulabilirsiniz.

2. StorageClass oluşturun

  1. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Volumes > StorageClasses seçeneğine tıklayın.

  2. StorageClasses sayfasında Create seçeneğine tıklayın. PV Type değerini NAS olarak ayarlayın ve ekrandaki talimatları izleyerek StorageClass'ı yapılandırın.

    Temel parametreler aşağıda açıklanmıştır. Daha fazla bilgi için bkz. StorageClass oluşturma.

    • Select Mount Target: CNFS tarafından oluşturulan veya yönetilen NAS dosya sisteminin bağlama hedefi adresini seçin.

      Bağlama hedefi adresini görüntüleme hakkında daha fazla bilgi için bkz. Bağlama hedeflerini yönetme.
    • Mount Path: Bağlanacak NAS alt dizini. Bu parametreyi belirtmezseniz varsayılan olarak kök dizin bağlanır. Genel Amaçlı NAS dosya sisteminin kök dizini / şeklindedir.

      Dizin NAS dosya sisteminde yoksa sistem dizini otomatik olarak oluşturur ve bağlar.
    • 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 archiveOnDelete gerektirir. Ancak statik PV'ler archiveOnDelete özelliğini desteklemez. Bu nedenle, bu ilke Delete olarak ayarlandığında PVC'nin silinmesi PV'yi veya NAS dosya sistemindeki dosyaları silmez.

        archiveOnDelete yapılandırma hakkında bilgi için bkz. Dinamik olarak sağlanan NAS birimlerini kullanma.

3. PVC oluşturun

  1. Küme yönetimi sayfasının sol gezinme bölmesinde Storage > PVCs yolunu izleyin.

  2. Persistent Volume Claims sayfasında Create seçeneğine tıklayın. PVC Type değerini NAS olarak ayarlayın ve ekrandaki talimatları izleyerek PVC'yi yapılandırın.

    • Allocation Mode: Birim için sağlama yöntemi.

    • Existing StorageClass: Select Storage Class seçeneğine tıklayın ve oluşturduğunuz StorageClass'ı seçin.

    • Capacity: Oluşturulacak birimin kapasitesi. Bu değer, NAS dosya sisteminin toplam kapasitesini aşamaz.

    • Access Mode: Varsayılan değer ReadWriteMany'dir. ReadWriteOnce veya ReadOnlyMany seçeneklerinden birini de seçebilirsiniz.

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 cnfs-nas-pvc) seçin ve Container Path için /data değerini girin.

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.

  1. Yeni bir NAS dosya sistemi sağlamak için bir ContainerNetworkFileSystem kaynağı tanımlayın.

  2. 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 ContainerNetworkFileSystem nesnesi oluşturun.
apiVersion: storage.alibabacloud.com/v1beta1
    kind: ContainerNetworkFileSystem
    metadata:
      name: cnfs-nas-filesystem
    spec:
      description: "cnfs"
      type: nas
      reclaimPolicy: Retain
      parameters:
        filesystemType: standard
        storageType: Capacity
        protocolType: NFS
        encryptType: SSE-KMS
        enableTrashCan: "true"
        trashCanReservedDays: "5"
        vSwitchId: vsw-2ze9l3ppwzg6bl02j****

Parametreler

Parametre

Açıklama

description

CNFS için bir açıklama.

type

Birim türü. Bu değeri nas olarak ayarlayın.

reclaimPolicy

Geri kazanma ilkesi. Şu anda yalnızca Retain desteklenmektedir. Bu ilke, CNFS nesnesi silindiğinde arka uçtaki NAS dosya sisteminin silinmemesini sağlayarak veri kaybını önler.

parameters.filesystemType

Dosya sistemi türü. Varsayılan değer, standard olarak belirtilen Genel Amaçlı NAS'tır.

parameters.storageType

Depolama türü. Genel Amaçlı NAS, Performance, Capacity ve Premium türlerini destekler.

parameters.protocolType

Dosya aktarım protokolü. Yalnızca NFS protokolü desteklenir.

parameters.encryptType

İsteğe bağlı. Şifreleme yöntemini belirtir.

  • None: Şifrelemeyi devre dışı bırakır.

  • SSE-KMS: NAS tarafından yönetilen şifrelemeyi etkinleştirir. Her dosya sistemini şifrelemek için NAS tarafından tamamen yönetilen bir anahtar kullanılır. Bu anahtar, Key Management Service (KMS) içinde NAS tarafından oluşturulur ve yönetilir.

parameters.enableTrashCan

Yanlışlıkla dosya silinmesinden kaynaklanan iş kesintilerini ve veri kaybını önlemek için geri dönüşüm kutusunu etkinleştirir.

  • true: Özelliği etkinleştirir.

  • false: Özelliği devre dışı bırakır.

parameters.trashCanReservedDays

Geri dönüşüm kutusundaki dosyalar için maksimum saklama süresini belirtir. Varsayılan değer 7 gündür. Örneğin, trashCanReservedDays: 5, dosyaların en fazla 5 gün saklandığını gösterir.

parameters.vSwitchId

NAS dosya sistemi için vSwitch ID'si.

Genel Amaçlı NAS'ı destekleyen bölgeler ve kullanılabilirlik alanları hakkında bilgi için bkz. Bölgeler ve kullanılabilirlik alanları.

  • Oluşturulan NAS dosya sistemini görüntülemek için kubectl get cnfs komutunu çalıştırın.

  • NAS dosya sisteminin ayrıntılarını görüntülemek için kubectl get cnfs/cnfs-nas-filesystem -o yaml komutunu çalıştırın.

    YAML parametreleri hakkında daha fazla bilgi için bkz. CNFS YAML referansı.

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 kalıcı birim: Kalıcı birimi (PV), NAS dosya sistemindeki mevcut bir dizine manuel olarak bağlar. Bu yöntem, mevcut belirli verilere erişmeniz gereken senaryolar için uygundur.

  • Dinamik StorageClass: Uygulamaların talep üzerine otomatik olarak yeni, bağımsız alt dizinler oluşturmasına olanak tanıyan bir şablon olarak hizmet veren bir StorageClass oluşturur.

Statik PV

apiVersion: v1
kind: PersistentVolume
metadata:
  name: cnfs-nas-pv
  labels:
    alicloud-pvname: cnfs-nas-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  csi:
    driver: nasplugin.csi.alibabacloud.com
    # Must be the same as the PV name.
    volumeHandle: cnfs-nas-pv 
    volumeAttributes:
      # Specify the CNFS to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The path in the CNFS where the volume is mounted.
      path: "/"
  mountOptions:
    - nolock,tcp,noresvport
    - vers=3
PV parametreleri hakkında daha fazla bilgi için bkz. Statik NAS birimlerini kullanma.

Dinamik StorageClass

apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alibabacloud-nas-cnfs
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3
    parameters:
      volumeAs: subpath
      # Specify the CNFS to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The path in the CNFS where the volume is mounted.
      path: "/"
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    # Set to true to allow the expansion of the directory quota for the volume.
    allowVolumeExpansion: true
StorageClass 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 PV

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  selector:
    matchLabels:
      # Matches the previously created PV by using a label selector.
      alicloud-pvname: cnfs-nas-pv   

Dinamik StorageClass

apiVersion: v1
    kind: PersistentVolumeClaim
    metadata: 
      name: cnfs-nas-pvc
    spec:
      accessModes:
      - ReadWriteMany 
      storageClassName: alibabacloud-nas-cnfs
      resources: 
        requests:
          storage: 70Gi

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.

Örnek kod

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cnfs-nas-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
          ports:
            - containerPort: 80
          volumeMounts:
            - name: cnfs-nas-pvc
              mountPath: "/data"
      volumes:
        - name: cnfs-nas-pvc
          persistentVolumeClaim:
            claimName: cnfs-nas-pvc

5. Sonucu doğrulayın

Konsol

  1. CNFS oluşturma

  1. ACK konsolu'nda oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

  2. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Volumes > CNFS seçeneğine tıklayın.

  3. Create CNFS File System seçeneğine tıklayın ve ekrandaki talimatları izleyerek CNFS parametrelerini yapılandırın.

    • Bir NAS dosya sistemi seçin.

    • Select Existing NAS File System seçeneğini belirleyin, ardından özel bir NAS dosya sistemi oluşturmak için Create NAS File System seçeneğine tıklayın. Dosya sistemi oluşturulduktan sonra bu sistemi seçin.

      NAS dosya sistemi oluşturma hakkında daha fazla bilgi için bkz. Konsolu kullanarak Genel Amaçlı NAS dosya sistemi oluşturma.
  1. PV veya StorageClass oluşturma

PV

  1. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Volumes > Persistent Volumes seçeneğine tıklayın.

  2. Create seçeneğine tıklayın, PV Type değerini NAS olarak ayarlayın ve ekrandaki talimatları izleyerek PV parametrelerini yapılandırın.

    Aşağıdaki listede temel parametreler açıklanmıştır. Parametrelerin ayrıntılı açıklamaları için bkz. PV oluşturma.

    • Capacity: PV için kapasiteyi belirtir. Bu değer, PV'yi bir PVC ile eşleştirmek için kullanılır ancak gerçek depolama boyutunu sınırlamaz. Uygulamanız, altta yatan NAS dosya sisteminin tüm kapasitesini kullanabilir.

      NAS dosya sisteminin gerçek kapasitesi teknik özelliklerine göre belirlenir. Daha fazla bilgi için bkz. Genel Amaçlı NAS.
    • Enable CNFS: CNFS'nin etkinleştirilip etkinleştirilmeyeceğini belirtir.

    • Select CNFS: CNFS'yi etkinleştirirseniz daha önce oluşturduğunuz CNFS'yi seçin.

    • Advanced Options (Optional):

      • Mount Path: Bağlanacak NAS alt dizini. Bu parametreyi belirtmezseniz varsayılan olarak kök dizin bağlanır. Genel Amaçlı NAS dosya sisteminin kök dizini / şeklindedir.

        Dizin NAS dosya sisteminde yoksa sistem bu dizini otomatik olarak oluşturur ve bağlar.
      • Reclaim Policy: CNFS yalnızca Retain ilkesini destekler.

StorageClass

  1. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Volumes > StorageClasses seçeneğine tıklayın.

  2. StorageClasses sayfasında Create seçeneğine tıklayın. PV Type değerini NAS olarak ayarlayın ve ekrandaki talimatları izleyerek StorageClass'ı yapılandırın.

    Temel parametreler aşağıda açıklanmıştır. Daha fazla bilgi için bkz. StorageClass oluşturma.

    • Select Mount Target: CNFS tarafından oluşturulan veya yönetilen NAS dosya sisteminin bağlama hedefi adresini seçin.

      Bağlama hedefi adresini görüntüleme hakkında daha fazla bilgi için bkz. Bağlama hedeflerini yönetme.
    • Mount Path: Bağlanacak NAS alt dizini. Bu parametreyi belirtmezseniz varsayılan olarak kök dizin bağlanır. Genel Amaçlı NAS dosya sisteminin kök dizini / şeklindedir.

      Dizin NAS dosya sisteminde yoksa sistem bu dizini otomatik olarak oluşturur ve bağlar.
    • 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 archiveOnDelete gerektirir. Ancak statik PV'ler archiveOnDelete özelliğini desteklemez. Bu nedenle ilke Delete olarak ayarlandığında PVC'nin silinmesi PV'yi veya NAS dosya sistemindeki dosyaları silmez.

        archiveOnDelete yapılandırma hakkında bilgi için bkz. Dinamik olarak sağlanan NAS birimlerini kullanma.
  1. PVC oluşturma

  1. Küme yönetimi sayfasının sol gezinme bölmesinde Storage > PVCs seçeneğini belirleyin.

  2. Persistent Volume Claims sayfasında Create seçeneğine tıklayın. PVC Type değerini NAS olarak ayarlayın ve ekrandaki talimatları izleyerek PVC'yi yapılandırın.

    • Allocation Mode: Birimin sağlama yöntemidir.

    • Existing StorageClass: Select Storage Class seçeneğine tıklayın ve oluşturduğunuz StorageClass'ı seçin.

    • Capacity: Oluşturulacak birimin kapasitesidir. Bu değer, NAS dosya sisteminin toplam kapasitesini aşamaz.

    • Access Mode: Varsayılan değer ReadWriteMany'dir. ReadWriteOnce veya ReadOnlyMany seçeneklerinden birini de seçebilirsiniz.

  1. Uygulama oluşturma ve NAS dosya sistemini bağlama

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 cnfs-nas-pvc) seçin ve Container Path için /data değerini girin.

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 ContainerNetworkFileSystem kaynağı oluşturun.

apiVersion: storage.alibabacloud.com/v1beta1
    kind: ContainerNetworkFileSystem
    metadata:
      name: cnfs-nas-filesystem
    spec:
      description: "cnfs"
      type: nas
      reclaimPolicy: Retain
      parameters:
        server: 17f7e4****-h****.cn-beijing.nas.aliyuncs.com

Parametreler

Parametre

Açıklama

description

Dosya sistemi hakkında kısa bir açıklama.

type

Depolama türü. Bu değeri nas olarak ayarlayın.

reclaimPolicy

Geri alma ilkesi. Şu anda yalnızca Retain desteklenmektedir. Bu ilke, CNFS nesnesi silindiğinde arka uçtaki NAS dosya sisteminin silinmemesini sağlayarak veri kaybını önler.

parameters.server

NAS bağlama hedefinin adresi.

  • Oluşturulan NAS dosya sistemini görüntülemek için kubectl get cnfs komutunu çalıştırın.

  • NAS dosya sisteminin ayrıntılarını görüntülemek için kubectl get cnfs/cnfs-nas-filesystem -o yaml komutunu çalıştırın.

    YAML parametreleri hakkında daha fazla bilgi için bkz. CNFS YAML referansı.

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 kalıcı birim: Kalıcı birimi (PV), NAS dosya sistemindeki mevcut bir dizine manuel olarak bağlar. Bu yöntem, mevcut belirli verilere erişmeniz gereken senaryolar için uygundur.

  • Dinamik StorageClass: Bir şablon görevi görecek bir StorageClass oluşturarak uygulamaların talep üzerine otomatik olarak yeni, bağımsız alt dizinler oluşturmasına olanak tanır.

Statik PV

apiVersion: v1
kind: PersistentVolume
metadata:
  name: cnfs-nas-pv
  labels:
    alicloud-pvname: cnfs-nas-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  csi:
    driver: nasplugin.csi.alibabacloud.com
    # Must be the same as the PV name.
    volumeHandle: cnfs-nas-pv 
    volumeAttributes:
      # Specify the CNFS to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The path in the CNFS where the volume is mounted.
      path: "/"
  mountOptions:
    - nolock,tcp,noresvport
    - vers=3
PV parametreleri hakkında daha fazla bilgi için bkz. Statik NAS birimleri kullanma.

Dinamik StorageClass

apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alibabacloud-nas-cnfs
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3
    parameters:
      volumeAs: subpath
      # Specify the CNFS to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The path in the CNFS where the volume is mounted.
      path: "/"
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    # Set to true to allow the expansion of the directory quota for the volume.
    allowVolumeExpansion: true
StorageClass 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 PV

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  selector:
    matchLabels:
      # Matches the previously created PV by using a label selector.
      alicloud-pvname: cnfs-nas-pv   

Dinamik StorageClass

apiVersion: v1
    kind: PersistentVolumeClaim
    metadata: 
      name: cnfs-nas-pvc
    spec:
      accessModes:
      - ReadWriteMany 
      storageClassName: alibabacloud-nas-cnfs
      resources: 
        requests:
          storage: 70Gi

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.

Örnek kod

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cnfs-nas-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
          ports:
            - containerPort: 80
          volumeMounts:
            - name: cnfs-nas-pvc
              mountPath: "/data"
      volumes:
        - name: cnfs-nas-pvc
          persistentVolumeClaim:
            claimName: cnfs-nas-pvc

5. Sonucu doğrulama

Console

  1. Mevcut bir NAS dosya sistemi kullanan bir CNFS oluşturma

  1. ACK console'de oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

  2. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Volumes > CNFS seçeneğine tıklayın.

  3. Create CNFS File System seçeneğine tıklayın ve ekrandaki talimatları izleyerek CNFS'yi yapılandırın.

  4. Create CNFS File System panelinde parametreleri yapılandırın ve OK seçeneğine tıklayın.

    • NAS dosya sistemi türünü seçin.

    • Select Existing NAS File System seçeneğini belirleyin ve açılan listeden mevcut bir NAS bağlama hedefini seçin.

    • İsteğe bağlı olarak, bağlama işlemini hızlandırmak ve veri erişimi performansını optimize etmek için esnek hızlandırmadan yararlanmak üzere End-to-end Data Acceleration özelliğini etkinleştirin.

  1. PV veya StorageClass oluşturma

PV

  1. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Volumes > Persistent Volumes seçeneğine tıklayın.

  2. Create seçeneğine tıklayın, PV Type değerini NAS olarak ayarlayın ve ardından PV parametrelerini istemlere göre yapılandırın.

    Aşağıdaki liste temel parametreleri açıklamaktadır. Ayrıntılı parametre açıklamaları için bkz. PV oluşturma.

    • Capacity: PV için kapasiteyi belirtir. Bu değer, PV'yi bir PVC ile eşleştirmek için kullanılır ve gerçek depolama boyutunu sınırlamaz. Uygulamanız, temel alınan NAS dosya sisteminin tam kapasitesini kullanabilir.

      Bir NAS dosya sisteminin gerçek kapasitesi teknik özelliklerine göre belirlenir. Daha fazla bilgi için bkz. General-purpose NAS.
    • Enable CNFS: CNFS'nin etkinleştirilip etkinleştirilmeyeceğini belirtir.

    • Select CNFS: CNFS'yi etkinleştirirseniz daha önce oluşturduğunuz CNFS'yi seçin.

    • Advanced Options (Optional):

      • Mount Path: Bağlanacak NAS alt dizini. Bu parametreyi belirtmezseniz varsayılan olarak kök dizin bağlanır. General-purpose NAS dosya sisteminin kök dizini / şeklindedir.

        Dizin NAS dosya sisteminde yoksa sistem dizini otomatik olarak oluşturur ve bağlar.
      • Reclaim Policy: CNFS yalnızca Retain ilkesini destekler.

StorageClass

  1. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Volumes > StorageClasses seçeneğine tıklayın.

  2. StorageClasses sayfasında Create seçeneğine tıklayın. PV Type değerini NAS olarak ayarlayın ve ekrandaki talimatları izleyerek StorageClass'ı yapılandırın.

    Temel parametreler aşağıda açıklanmıştır. Daha fazla bilgi için bkz. StorageClass oluşturma.

    • Select Mount Target: CNFS tarafından oluşturulan veya yönetilen NAS dosya sisteminin bağlama hedefi adresini seçin.

      Bağlama hedefi adresini görüntüleme hakkında daha fazla bilgi için bkz. Bağlama hedeflerini yönetme.
    • Mount Path: Bağlanacak NAS alt dizini. Bu parametreyi belirtmezseniz varsayılan olarak kök dizin bağlanır. General-purpose NAS dosya sisteminin kök dizini / şeklindedir.

      Dizin NAS dosya sisteminde yoksa sistem dizini otomatik olarak oluşturur ve bağlar.
    • 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 archiveOnDelete gerektirir. Ancak statik PV'ler archiveOnDelete özelliğini desteklemez. Bu nedenle, bu ilke Delete olarak ayarlandığında PVC'nin silinmesi PV'yi veya NAS dosya sistemindeki dosyaları silmez.

        archiveOnDelete yapılandırma hakkında daha fazla bilgi için bkz. Dinamik olarak sağlanan NAS birimleri kullanma.
  1. PVC oluşturma

  1. Küme yönetimi sayfasının sol gezinme bölmesinde Storage > PVCs seçeneğini belirleyin.

  2. Persistent Volume Claims sayfasında Create seçeneğine tıklayın. PVC Type değerini NAS olarak ayarlayın ve ekrandaki talimatları izleyerek PVC'yi yapılandırın.

    • Allocation Mode: Birimin sağlama yöntemidir.

    • Existing StorageClass: Select Storage Class seçeneğine tıklayın ve oluşturduğunuz StorageClass'ı seçin.

    • Capacity: Oluşturulacak birimin kapasitesidir. Bu değer, NAS dosya sisteminin toplam kapasitesini aşamaz.

    • Access Mode: Varsayılan değer ReadWriteMany'dir. ReadWriteOnce veya ReadOnlyMany de seçebilirsiniz.

  1. Uygulama oluşturma ve NAS dosya sistemini bağlama

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, cnfs-nas-pvc) seçin ve Container Path için /data girin.

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 path değ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), volumes bölümündeki persistentVolumeClaim.claimName parametresini aynı PVC adına ayarlayın.

1. Belirli bir dizine işaret eden bir PV ve PVC oluşturun

Show sample code

apiVersion: v1
kind: PersistentVolume
metadata:
  name: cnfs-nas-static-pv
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 50Gi
  csi:
    driver: nasplugin.csi.alibabacloud.com
    fsType: nfs
    volumeAttributes:
      # Specify the CNFS.
      containerNetworkFileSystem: cnfs-nas-filesystem
      mountProtocol: nfs
      path: /
      volumeAs: subpath
      volumeCapacity: "true"
    volumeHandle: cnfs-nas-static-pv
  mountOptions:
  - nolock,tcp,noresvport
  - vers=3
  persistentVolumeReclaimPolicy: Retain
  storageClassName: cnfs-nas-sc
  volumeMode: Filesystem
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cnfs-nas-static-pvc
  namespace: default
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 50Gi
  storageClassName: cnfs-nas-sc
  volumeMode: Filesystem
  # Reference the PV.
  volumeName: cnfs-nas-static-pv
status:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 50Gi

2. Örnek bir Deployment oluşturun

Show sample code

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cnfs-nas-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
        volumeMounts:
        - mountPath: "/data"
          # Reference the volume defined in the volumes section below.
          name: cnfs-nas-pvc
      volumes:
      # Define a volume named cnfs-nas-pvc.
      - name: cnfs-nas-pvc
        # All Pod replicas reference the same PVC to enable shared storage.
        persistentVolumeClaim:
          claimName: cnfs-nas-static-pvc

3. Sonucu doğrulayın

  1. Bağlama durumunu kontrol edin

    kubectl exec cnfs-nas-deployment-*****a -- mount | grep nfs

    Çıktıda bağlama noktası yer alır ve bu da başarılı bir bağlama işlemini gösterir.

    66bd9493d6-*****.cn-zhangjiakou.nas.aliyuncs.com:/ on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.XX.XX.199,mountvers=3,mountport=2049,mountproto=tcp,local_lock=all,addr=10.XX.XX.199)
  2. Deployment için paylaşılan ve kalıcı depolamayı 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 path altı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 parameters bölümünde volumeAs: subpath ayarı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 volumeClaimTemplates bölümünü kullanın.

1. Dinamik alt dizin oluşturma için bir StorageClass oluşturun

Show sample code

StorageClass'ta belirtilen CNFS'e başvurun ve CSI sürücüsünün her PVC isteği için yalıtılmış bir alt dizini dinamik olarak oluşturması amacıyla volumeAs: subpath değerini kullanın.

apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: cnfs-nas-sc
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3
    parameters:
      # The core parameter for enabling isolated volumes.
      volumeAs: subpath
      # Reference the created CNFS.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # Specify the root path on the NAS file system for creating subdirectories.
      # The CSI driver creates a subdirectory under this path with the same name as the auto-generated PV.
      path: "/"
      archiveOnDelete: "false"
    provisioner: nasplugin.csi.alibabacloud.com
    # Automatically delete the corresponding NAS subdirectory when the PVC is deleted.
    reclaimPolicy: Delete
    allowVolumeExpansion: true

2. Örnek bir StatefulSet oluşturun

Show sample code

StorageClass tarafından tanımlanan bir şablona göre her Pod için yalıtılmış bir depolama birimini dinamik olarak oluşturur ve bağlar.

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: cnfs-nas-sts
  labels:
    app: nginx
spec:
  serviceName: "nginx"
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
        command: ["/bin/sh"]
        args: ["-c", "sleep 3600;"]
        volumeMounts:
        - mountPath: "/data"
          name: pvc
  # The volumeClaimTemplates section automatically creates a PVC for each Pod based on the following template.
  volumeClaimTemplates:
  - metadata:
      name: pvc
    spec:
      accessModes: [ "ReadWriteOnce" ]
      # Reference the previously created StorageClass.
      storageClassName: "cnfs-nas-sc" 
      resources:
        requests:
          # This value is for scheduling purposes only and does not represent a real quota. 
          # The actual available capacity is the total capacity of the NAS file system.
          storage: 50Gi  

3. Sonucu doğrulayın

  1. Bağlama durumunu kontrol edin

    cnfs-nas-sts-0 gibi bir Pod'un bağlama bilgilerini kontrol edin.

    kubectl exec cnfs-nas-sts-0 -- mount |grep nfs

    Çıktı, NAS dosya sistemindeki bir alt dizinin Pod'un /data yoluna bağlandığını doğrular.

    66bd9493d6-*****.cn-zhangjiakou.nas.aliyuncs.com:/nas-e7242ba0-47ec-4410-9107-b0e247a***** on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.XX.XX.199,mountvers=3,mountport=2049,mountproto=tcp,local_lock=all,addr=10.XX.XX.199)
  2. StatefulSet için veri yalıtımını ve kalıcı depolamayı doğrulayın.

Üretim ortamı önerileri

  • Veri güvenliği

    • Veri şifreleme: Yeni bir NAS dosya sistemi oluştururken CNFS nesnesinin parameters bölümünde encryptType: SSE-KMS değ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 reclaimPolicy her zaman Retain olarak 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 ilkesini Retain olarak 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: true ayarını yapın.

      Bir PVC'deki requests.storage değ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

    Adımlar

    Paylaşılan depolama

    Kalıcı depolama

    Paylaşılan depolamayı doğrulamak için bir pod'da dosya oluşturun ve ardından diğerinde kontrol edin.

    1. Pod adlarını almak için pod bilgilerini görüntüleyin.

      kubectl get pod | grep cnfs-nas-deployment

      Beklenen çıktı:

      cnfs-nas-deployment-*****a 1/1 Running 0 40s
          cnfs-nas-deployment-*****b 1/1 Running 0 40s
    2. Pod'lardan birinde dosya oluşturun. Bu örnekte cnfs-nas-deployment-*a adlı bir pod kullanılmaktadır.

      kubectl exec cnfs-nas-deployment-*****a -- touch /data/test.txt
    3. Dosyanın diğer pod'da olup olmadığını kontrol edin. Bu örnekte cnfs-nas-deployment-*b adlı bir pod kullanılmaktadır.

      kubectl exec cnfs-nas-deployment-*****b -- ls /data

      Beklenen çıktı:

      test.txt

      Çıktıda dosya görünür; bu durum verilerin pod'lar arasında paylaşıldığını onaylar.

      Önemli

      Birden fazla pod paylaşılan depolamaya yazdığında CNFS veri tutarlılığını garanti edemez. Dosya bozulmasını önlemek için aynı dosyaya eşzamanlı yazma işlemlerinden kaçının.

    Kalıcı depolamayı doğrulamak için dağıtımı yeniden oluşturun ve verilerin yeni pod'larda mevcut olup olmadığını kontrol edin.

    1. Pod'ları yeniden oluşturmak için dağıtımın kademeli olarak yeniden başlatılmasını tetikleyin.

      kubectl rollout restart deploy cnfs-nas-deployment
    2. Pod'ları görüntüleyin ve yeni pod'ların başlayıp Running durumuna geçmesini bekleyin.

      kubectl get pod | grep cnfs-nas-deployment

      Beklenen çıktı:

      cnfs-nas-deployment-*****c 1/1 Running 0 67s
          cnfs-nas-deployment-*****d 1/1 Running 0 49s
    3. Yeni bir pod'da daha önce oluşturulan dosyanın mevcut olup olmadığını kontrol edin. Bu örnekte cnfs-nas-deployment-*c adlı bir pod kullanılmaktadır.

      kubectl exec cnfs-nas-deployment-*****c -- ls /data

      Beklenen çıktı:

      test.txt

      Daha önce yazılan dosya çıktıda görünür; bu durum depolamanın kalıcı olduğunu onaylar.

  • StatefulSet için veri yalıtımını ve kalıcı depolamayı doğrulayın

    Adımlar

    StatefulSet içindeki her pod bağımsız bir PVC'ye sahiptir; bu durum veri yalıtımını sağlar.

    Veri yalıtımı

    Kalıcı depolama

    Veri yalıtımını doğrulamak için bir pod'da dosya oluşturun ve diğerinde bulunmadığını teyit edin.

    1. Pod adlarını almak için pod bilgilerini görüntüleyin.

      kubectl get pod | grep cnfs-nas-sts

      Beklenen çıktı:

      cnfs-nas-sts-0 1/1 Running 0 5m
          cnfs-nas-sts-1 1/1 Running 0 5m
    2. Pod'lardan birinde tanımlanabilir bir dosya oluşturun. Bu örnekte cnfs-nas-sts-0 adlı bir pod kullanılır:

      kubectl exec cnfs-nas-sts-0 -- touch /data/sts-0-data.txt
    3. Dosyanın diğer pod'da olup olmadığını kontrol edin. Bu örnekte cnfs-nas-sts-1 adlı bir pod kullanılmaktadır.

      kubectl exec cnfs-nas-sts-1 -- ls /data

      Çıktıda cnfs-nas-sts-0 içinde oluşturulan dosya gösterilmez. Bu durum, her StatefulSet pod'unun bağımsız bir birim kullandığını ve verilerinin yalıtıldığını onaylar.

    Belirli bir pod'u silin, yeniden oluşturulmasını bekleyin ve ardından verilerin yeni pod'da mevcut olup olmadığını kontrol edin.

    1. Yeniden oluşturulmasını tetiklemek için bir pod'u silin. Bu örnekte cnfs-nas-sts-0 kullanılır:

      kubectl delete pod cnfs-nas-sts-0
    2. Pod'ları görüntüleyin ve aynı ada sahip bir pod'un başlayıp Running durumuna geçmesini bekleyin. StatefulSet, aynı ad ve kimliğe sahip bir pod'u yeniden oluşturur.

      kubectl get pod | grep cnfs-nas-sts

      Beklenen çıktı:

      cnfs-nas-sts-0                        1/1     Running   0          19s
          cnfs-nas-sts-1                        1/1     Running   0          102s
    3. Yeni pod'da daha önce oluşturulan dosyanın mevcut olup olmadığını kontrol edin.

      kubectl exec cnfs-nas-sts-0 -- ls /data

      Daha önce yazılan dosya çıktıda görünür; bu durum kalıcı depolamanın doğru çalıştığını onaylar.

      sts-0-data.txt

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

Ayrıntılar

apiVersion: storage.alibabacloud.com/v1beta1
kind: ContainerNetworkFileSystem
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"storage.alibabacloud.com/v1beta1","kind":"ContainerNetworkFileSystem","metadata":{"annotations":{},"name":"cnfs-nas-filesystem"},"spec":{"description":"cnfs","parameters":{"encryptType":"SSE-KMS","enableTrashCan":"true","filesystemType":"standard","protocolType":"NFS","storageType":"Capacity","trashCanReservedDays":"5","vSwitchId":"vsw-2ze9l3ppwzg6bl02j****"},"reclaimPolicy":"Retain","type":"nas"}}
  creationTimestamp: "20**-05-14T08:20:09Z"
  finalizers:
  - protection.alibabacloud.com/cnfs
  generation: 6
  name: cnfs-nas-filesystem
  resourceVersion: "122342382"
  uid: a9e9650c-68b2-405b-8274-0f5b6063****
spec:
  description: "cnfs"
  reclaimPolicy: Retain
  type: nas
  parameters:
    encryptType: SSE-KMS
    enableTrashCan: "true"
    filesystemType: standard
    protocolType: NFS
    storageType: Capacity
    trashCanReservedDays: "5"
    vSwitchId: vsw-2ze9l3ppwzg6bl02j****
status:
  conditions:
  - lastProbeTime: "20**-05-14 16:20:15"
    reason: The nas filesystem and mount target complete initialization.
    status: Ready
  fsAttributes:
    accessGroupName: DEFAULT_VPC_GROUP_NAME
    encryptType: SSE-KMS
    enableTrashCan: "true"
    filesystemId: 17f7e*****
    filesystemType: standard
    protocolType: NFS
    regionId: cn-beijing
    server: 17f7e48ece-h****.cn-beijing.nas.aliyuncs.com
    storageType: Capacity
    vSwitchId: vsw-2ze9l3ppwzg6bl02j****
    vpcId: vpc-2ze9sgmehjvwv5x74****
    zoneId: cn-beijing-h
  status: Available

Parametreler

Ayrıntılar

Parametre

Açıklama

status

CNFS'nin mevcut durumu. Olası değerler şunlardır: Pending, Creating, Initialization (dosya sistemi oluşturma), Available, Unavailable (geçici olarak kullanılamaz ancak kurtarılabilir), Fatal (kullanılamaz ve kurtarılamaz) ve Terminating.

conditions.lastProbeTime

Son yaşam döngüsü probunun zaman damgası.

conditions.reason

Mevcut durumun nedeni.

conditions.status

Mevcut durum. Kaynak kullanılabilir durumda ise durum Ready, kullanılamaz durumda ise NotReady olur.

fsAttributes.accessGroupName

Bağlama hedefine uygulanan izin grubunun adı. Şu anda yalnızca DEFAULT_VPC_GROUP_NAME (VPC için varsayılan izin grubu) desteklenmektedir.

fsAttributes.encryptType

İsteğe bağlı. Şifreleme yöntemini belirtir.

  • None: Şifrelemeyi devre dışı bırakır.

  • SSE-KMS: NAS tarafından yönetilen şifrelemeyi etkinleştirir. Her dosya sistemini şifrelemek için NAS tarafından tamamen yönetilen bir anahtar kullanılır. Bu anahtar, Key Management Service (KMS) içinde NAS tarafından oluşturulur ve yönetilir.

fsAttributes.enableTrashCan

Yanlışlıkla dosya silinmesinden kaynaklanan iş kesintilerini ve veri kayıplarını önlemek için geri dönüşüm kutusunu etkinleştirir.

  • true: Özelliği etkinleştirir.

  • false: Özelliği devre dışı bırakır.

fsAttributes.filesystemId

Dosya sisteminin kimliği.

fsAttributes.filesystemType

Dosya sistemi türü. Varsayılan değer Genel Amaçlı NAS'tır ve standard olarak belirtilir.

fsAttributes.protocolType

Dosya aktarım protokolü. Şu anda yalnızca NFS protokolü desteklenmektedir.

fsAttributes.regionId

CNFS'nin bulunduğu bölge.

fsAttributes.server

NAS bağlama hedefinin adresi.

fsAttributes.storageType

Depolama türü. Genel Amaçlı NAS, Performance, Capacity ve Premium türlerini destekler.

fsAttributes.vSwitchId

CNFS tarafından kullanılan vSwitch.

fsAttributes.vpcId

CNFS'nin bulunduğu VPC.

fsAttributes.zoneId

CNFS'nin bulunduğu kullanılabilirlik alanı.

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.

  1. İş 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>

  2. 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, StorageClass içindeki archiveOnDelete parametresinin ayarına göre işlenir.

        • "true" (varsayılan): Dizin veya dosya aslında silinmez. Bunun yerine archived-{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>

  3. PV'yi silin

    • İşlem: PV'yi silin. Bu işlem öncelikli olarak statik PV'ler veya önceki adımda Retain ilkesi kullanıldıktan sonra Released durumunda 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>

  4. 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> ve kubectl delete cnfs <YOUR-CNFS-NAME>

  5. 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.