Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Use CNFS to manage shared NAS volumes (recommended)

Son Güncelleme:Oct 06, 2026

ACK içinde CNFS bağlanarak NAS paylaşımlı depolama birimi olarak kullanılabilir. Bir StatefulSet uygulaması örneğinde gösterildiği gibi, CNFS birden fazla uygulama veya Pod'un aynı NAS dosya sistemi dizinini bağlamasına olanak tanıyarak Pod'lar arasındaki veri paylaşımı sorunlarını çözer.

Ön koşullar

  • NAS etkinleştirilmiş olmalıdır.

    product page of NAS sayfasını ilk kez ziyaret ediyorsanız ekrandaki talimatları izleyerek NAS hizmetini etkinleştirin.

  • Kubernetes 1.20 veya sonraki bir sürümü çalıştıran bir Container Service for Kubernetes (ACK) kümesi oluşturulmuş olmalıdır. Birim eklentisi olarak Container Storage Interface (CSI) eklentisi kullanılır. Daha fazla bilgi için bkz. ACK yönetilen küme oluşturma.

  • csi-plugin ve csi-provisioner sürümleri v1.24.11-5221f79-aliyun veya üzeri olmalıdır. csi-plugin ve csi-provisioner bileşenlerini güncelleme hakkında daha fazla bilgi için bkz. CSI bileşenlerini yükleme ve güncelleme.

  • storage-operator sürümü v1.24.105-825188d-aliyun veya üzeri olmalıdır. storage-operator bileşenini güncelleme hakkında daha fazla bilgi için bkz. Bileşenleri yönetme.

  • Bir kubectl istemcisi kümenize bağlı olmalıdır. Daha fazla bilgi için bkz. kubectl kullanarak ACK kümesine bağlanma.

    Not

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

    CNFS kullanarak NAS dosya sistemlerini yönetme hakkında daha fazla bilgi için bkz. CNFS kullanarak NAS dosya sistemlerini yönetme.

Adım 1: Paylaşılan birim için iş yükü oluşturma

  • cnfs-nas-static-pv adlı kalıcı birim (PV) oluşturun. PV, daha önce oluşturduğunuz NAS dosya sistemi olan cnfs-nas-filesystem adlı CNFS'i referans alır.

  • cnfs-nas-static-pvc adlı kalıcı birim talebi (PVC) oluşturun ve PV'yi PVC'ye bağlayın.

  • cnfs-nas-static-sts adlı StatefulSet oluşturun. StatefulSet, busybox görüntüsünü kullanarak PVC'yi bağlar ve bağlama noktasına 1 GB'lık geçici veri 1G.tmpfile yazar.

YAML içeriğini göster:

cat << EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolume
metadata:
  name: cnfs-nas-static-pv
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 50Gi
  csi:
    driver: nasplugin.csi.alibabacloud.com
    fsType: nfs
    volumeAttributes:
      containerNetworkFileSystem: cnfs-nas-filesystem # Reference the CNFS named 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:
  - ReadWriteOnce
  resources:
    requests:
      storage: 50Gi
  storageClassName: cnfs-nas-sc
  volumeMode: Filesystem
  volumeName: cnfs-nas-static-pv # Reference the PV named cnfs-nas-static-pv. 
status:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 50Gi
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: cnfs-nas-static-sts
  labels:
    app: busybox
spec:
  serviceName: "busybox"
  replicas: 2
  selector:
    matchLabels:
      app: busybox
  template:
    metadata:
      labels:
        app: busybox
    spec:
      containers:
      - name: busybox
        image: busybox
        command: ["/bin/sh"]
        args: ["-c", "sleep 3600;"]
        volumeMounts:
        - mountPath: "/data"
          name: cnfs-nas-static-pvc
      volumes:
      - name: cnfs-nas-static-pvc
        persistentVolumeClaim:
          claimName: cnfs-nas-static-pvc # Reference the PVC named cnfs-nas-static-pvc. 
EOF

Adım 2: Bağlama sonucunu görüntüleme

Bağlama sonucunu görüntüleyin:

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

Beklenen çıktı:

971134b0e8-****.cn-zhangjiakou.nas.aliyuncs.com:/ on /data type nfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other)

Beklenen çıktıda bir bağlama noktası görünür; bu durum birimin başarıyla bağlandığını gösterir.

Adım 3: Verilerin birime kalıcı olarak yazılıp yazılmadığını kontrol etme

Dizine 1 GB boyutunda geçici bir dosya yazın:

kubectl exec cnfs-nas-static-sts-0 -ti -- sh -c 'dd if=/dev/zero of=/data/1G.tmpfile bs=1G count=1;'

Geçici dosyanın dizine yazılıp yazılmadığını kontrol edin:

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

Beklenen çıktı:

total 1G
-rw-r--r--    1 root     root        1.0G Dec 15 12:11 1G.tmpfile

Çıktı, 1G.tmpfile dosyasının /data dizinine yazıldığını gösterir.

Adım 4: Verilerin diğer pod'larla paylaşılıp paylaşılmadığını kontrol etme

1 GB'lık geçici dosyanın başka bir Pod olan cnfs-nas-static-sts-1 içinde paylaşılıp paylaşılmadığını kontrol edin:

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

Beklenen çıktı:

total 1G
-rw-r--r--    1 root     root        1.0G Dec 15 12:11 1G.tmpfile

Çıktı, 1G.tmpfile dosyasının cnfs-nas-static-sts-0 ve cnfs-nas-static-sts-1 adlı pod'larda bulunduğunu gösterir.

Not

Farklı Pod'lar arasında paylaşılan depolama verileri yazılırken CNFS veri tutarlılığını garanti etmez. Dosya bozulmasını önlemek için aynı dosyaya birden fazla kez yazmaktan kaçının.

İlgili Konular