All Products
Search
Document Center

File Storage NAS:Kelola sistem file NAS dengan CNFS

Last Updated:Aug 27, 2026

Container Network File System (CNFS) memungkinkan Anda mengelola sistem file NAS sebagai sumber daya native Kubernetes. Gunakan pendekatan deklaratif untuk membuat, mengadopsi, dan memasang penyimpanan NAS bagi beban kerja seperti situs web dan analitik data, dengan dukungan fleksibel untuk berbagi data dan isolasi.

Prasyarat

  • Anda memiliki kluster ACK Pro yang menjalankan versi 1.20 atau lebih baru. Untuk memperbarui kluster Anda, lihat Memperbarui kluster ACK secara manual.

    CNFS mendukung versi 1.20 saat digunakan dengan kubectl.
  • Pastikan komponen penyimpanan memenuhi persyaratan versi berikut. Untuk memperbarui komponen, lihat Komponen.

    • csi-plugin dan csi-provisioner: v1.24.11-5221f79-aliyun atau lebih baru.

    • storage-operator: v1.26.2-1de13b6-aliyun atau lebih baru.

  • Anda telah mengaktifkan Apsara File Storage NAS. Batasan berikut berlaku untuk sistem file NAS. Untuk informasi selengkapnya, lihat Batasan.

    • Hanya tipe penyimpanan Capacity, Performance, dan Extreme dari General-purpose NAS yang didukung. Extreme Speed NAS tidak didukung.

    • Jumlah sistem file NAS yang dapat Anda buat per akun dalam satu wilayah dibatasi.

    • Untuk menggunakan enkripsi KMS pada sistem file NAS Anda, Anda harus mengaktifkan Key Management Service (KMS). Untuk informasi selengkapnya, lihat Membeli instans KMS khusus.

Buat sistem file NAS

Metode menambahkan sistem file NAS

Pilih cara menambahkan sistem file NAS ke kluster Anda.

Metode

Deskripsi

Mode penyediaan volume

Kasus penggunaan

Metode 1: Secara otomatis membuat dan menggunakan sistem file NAS

CNFS secara otomatis membuat dan mengelola sistem file NAS dengan konfigurasi tetap untuk pemasangan cepat.

Volume dinamis

  • Untuk validasi fitur cepat.

  • Anda tidak perlu mengelola detail penyimpanan dasar. Namun, sistem file NAS yang dibuat memiliki konfigurasi tetap, artinya Anda tidak dapat memilih tipe penyimpanan, menyesuaikan metode enkripsi, atau mengelola keranjang daur ulang dengan kontrol detail halus.

Metode 2: Membuat dan menggunakan sistem file NAS dengan parameter kustom

CNFS membuat sistem file NAS baru yang dapat dikustomisasi berdasarkan parameter yang Anda tentukan.

  • Volume dinamis

  • Volume statis

Ideal untuk kasus penggunaan dengan kebutuhan spesifik terkait performa, enkripsi, atau biaya, atau yang memerlukan kontrol penyimpanan detail halus.

Metode 3: Mengadopsi dan menggunakan sistem file NAS yang sudah ada

CNFS mengadopsi sistem file NAS yang sudah ada untuk pengelolaan terpadu.

  • Volume dinamis

  • Volume statis

Untuk mengintegrasikan sistem file NAS yang sudah ada ke dalam kluster Anda secara mulus.

Metode 1: Secara otomatis membuat dan menggunakan sistem file NAS

CNFS secara otomatis membuat sistem file NAS dengan konfigurasi default berdasarkan lingkungan kluster Anda. Enkripsi dinonaktifkan secara default. Jika Capacity NAS tidak tersedia di wilayah saat ini, Performance NAS akan digunakan sebagai gantinya.

Setelah Anda membuat resource CNFS dan StorageClass, beban kerja dapat meminta penyimpanan melalui PersistentVolumeClaim (PVC), yang secara dinamis menyediakan PersistentVolume (PV) pada sistem file NAS dan memasangnya ke pod.

kubectl

1. Buat resource CNFS

Buat objek ContainerNetworkFileSystem. Jika Anda tidak menentukan parameter server atau parameter kustom lainnya, CNFS secara otomatis membuat sistem file NAS default.
apiVersion: storage.alibabacloud.com/v1beta1
kind: ContainerNetworkFileSystem
metadata:
  name: cnfs-nas-filesystem
spec:
  description: "cnfs"
  type: nas
  # Hanya Retain yang didukung. Menghapus resource CNFS tidak menghapus instans NAS backend.
  reclaimPolicy: Retain
  parameters:
    # Menentukan metode enkripsi sisi server. SSE-KMS mengaktifkan enkripsi dengan kunci yang dikelola oleh NAS.
    encryptType: SSE-KMS
    # Mengaktifkan fitur keranjang daur ulang jika diatur ke "true".
    enableTrashCan: "true"

Parameter

Parameter

Deskripsi

description

Deskripsi resource CNFS.

type

Tipe volume penyimpanan yang akan dibuat. Atur nilainya ke nas.

reclaimPolicy

Kebijakan pemulihan. Hanya Retain yang didukung. Kebijakan ini mencegah kehilangan data dengan memastikan sistem file NAS backend tidak dihapus saat Anda menghapus resource CNFS.

parameters.encryptType

Opsi. Menentukan apakah akan mengaktifkan metode enkripsi.

  • None: Menonaktifkan enkripsi.

  • SSE-KMS: Mengaktifkan enkripsi sisi server dengan kunci yang dikelola oleh NAS. NAS membuat dan mengelola kunci di KMS untuk mengenkripsi setiap sistem file.

parameters.enableTrashCan

Menentukan apakah akan mengaktifkan fitur keranjang daur ulang untuk mencegah gangguan bisnis atau kehilangan data akibat penghapusan file yang tidak disengaja.

  • true: Mengaktifkan fitur.

  • false: Menonaktifkan fitur.

  • Jalankan kubectl get cnfs untuk melihat sistem file NAS yang dibuat.

  • Jalankan kubectl get cnfs/cnfs-nas-filesystem -o yaml untuk melihat detail sistem file NAS.

    Untuk informasi selengkapnya tentang file YAML, lihat Referensi YAML CNFS.

2. Buat StorageClass

Buat objek StorageClass sebagai templat penyimpanan. Gunakan parameter containerNetworkFileSystem untuk mengaitkannya dengan resource CNFS yang telah Anda buat.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alibabacloud-cnfs-nas
provisioner: nasplugin.csi.alibabacloud.com
parameters:
  # Membuat subdirektori terpisah pada sistem file NAS untuk setiap PVC.
  volumeAs: subpath
  # Mengaitkan StorageClass dengan resource CNFS yang didefinisikan sebelumnya.
  containerNetworkFileSystem: cnfs-nas-filesystem
  path: "/"
# Atur ke Retain untuk menyimpan data subdirektori setelah PVC dihapus.
reclaimPolicy: Retain
# Mengizinkan ekspansi volume.
allowVolumeExpansion: true
mountOptions:
  - nolock,tcp,noresvport
  - vers=3

3. Buat PersistentVolumeClaim

Aplikasi meminta volume penyimpanan menggunakan PersistentVolumeClaim (PVC) dan mereferensikan StorageClass sebagai templat konfigurasinya.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: alibabacloud-cnfs-nas
  resources:
    requests:
      # Jika allowVolumeExpansion diatur ke true, nilai storage digunakan sebagai kuota untuk subdirektori yang sesuai dengan PVC ini. Ini menetapkan kuota 70 GiB untuk subdirektori.
      storage: 70Gi  

4. Buat aplikasi dan pasang PVC

Setelah PVC dibuat, deploy aplikasi contoh, seperti Deployment atau StatefulSet, dan pasang PV yang terikat ke PVC ke aplikasi.
  • Deployment: Semua replika pod mereferensikan PVC yang sama dan memasang direktori yang sama pada sistem file NAS backend untuk berbagi data.

    Kode contoh

    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: PVC terpisah secara otomatis dibuat untuk setiap replika pod berdasarkan templat volumeClaimTemplates. Setiap replika memasang subdirektori khusus pada sistem file NAS backend untuk mengisolasi data.

    Kode contoh

    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:
              # Jika allowVolumeExpansion diatur ke true, parameter storage berlaku. Ini menetapkan kuota 50 GiB untuk subdirektori.
              storage: 50Gi 

5. Verifikasi hasil

Konsol

1. Buat resource CNFS

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Volumes > CNFS.

  3. Klik Create CNFS File System dan konfigurasikan resource CNFS sesuai petunjuk.

    Setelah resource CNFS dibuat, temukan di daftar dan klik namanya untuk melihat detail. Klik ID NAS untuk membuka halaman detail sistem file NAS. Klik Mount Targets untuk mendapatkan alamat titik pemasangan dari kolom Mount Target.

2. Buat StorageClass

  1. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Volumes > StorageClasses.

  2. Di halaman StorageClasses, klik Create, pilih PV Type untuk NAS, lalu konfigurasikan StorageClass sesuai petunjuk.

    Tabel berikut menjelaskan parameter utama. Untuk informasi selengkapnya, lihat Membuat StorageClass.

    • Select Mount Target: Pilih titik pemasangan sistem file NAS yang dibuat atau diadopsi menggunakan CNFS.

      Untuk informasi selengkapnya tentang cara melihat titik pemasangan, lihat Mengelola titik pemasangan.
    • Mount Path: Subdirektori NAS yang akan dipasang. Jika tidak ditentukan, direktori root (/) dipasang secara default.

      Jika direktori tidak ada di sistem file NAS, sistem secara otomatis membuat dan memasangnya.
    • Reclaim Policy:

      • Retain (Direkomendasikan): Setelah PVC dihapus, PV masuk ke status Released. Data NAS backend dipertahankan dan harus dihapus secara manual.

      • Delete: Menghapus PV saat PVC terkait dihapus. Kebijakan ini memerlukan archiveOnDelete. Namun, PV statis tidak mendukung archiveOnDelete. Oleh karena itu, ketika kebijakan ini diatur ke Delete, menghapus PVC tidak menghapus PV atau file di sistem file NAS.

        Untuk mengonfigurasi archiveOnDelete, lihat Menggunakan volume NAS yang disediakan secara dinamis.

3. Buat PersistentVolumeClaim

  1. Di panel navigasi kiri halaman manajemen kluster, pilih Storage > PVCs.

  2. Di halaman Persistent Volume Claims, klik Create, pilih NAS untuk PVC Type, lalu konfigurasikan PVC sesuai petunjuk.

    • Allocation Mode: Mode penggunaan volume penyimpanan.

    • Existing StorageClass: Klik Select Storage Class dan pilih StorageClass yang telah Anda buat.

    • Capacity: Kapasitas volume penyimpanan. Nilai ini tidak boleh melebihi kapasitas yang tersedia pada sistem file NAS dasar.

    • Access Mode: Nilai default adalah ReadWriteMany. Anda juga dapat memilih ReadWriteOnce atau ReadOnlyMany.

4. Buat aplikasi dan pasang volume NAS

Saat Anda membuat Deployment atau membuat StatefulSet, Anda dapat memasang PVC ke kontainer di bagian Volumes pada halaman Container.

Contoh ini menunjukkan cara memasang PVC ke path /data di kontainer.

Untuk Volume Type, pilih Cloud Volume. Untuk Mount Source, pilih cnfs-nas-pvc. Untuk Container Path, masukkan /data.

Metode 2: Membuat dan menggunakan sistem file NAS kustom

Gunakan CNFS untuk membuat sistem file NAS dengan parameter kustom.

  1. Definisikan resource ContainerNetworkFileSystem untuk menyediakan sistem file NAS baru.

  2. Buat sistem file tersebut tersedia untuk aplikasi di kluster Anda dengan membuat volume persisten statis atau kelas penyimpanan.

kubectl

1. Buat sistem file NAS kustom

Buat objek ContainerNetworkFileSystem dan tentukan detail NAS, seperti tipe penyimpanan, tipe enkripsi, dan vSwitch.
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****

Parameter

Parameter

Deskripsi

description

Deskripsi resource CNFS.

type

Tipe volume penyimpanan yang akan dibuat. Atur nilainya ke nas.

reclaimPolicy

Kebijakan pemulihan. Hanya Retain yang didukung. Kebijakan ini mencegah kehilangan data dengan memastikan sistem file NAS backend tidak dihapus saat Anda menghapus resource CNFS.

parameters.filesystemType

Tipe sistem file. Default adalah standard untuk general-purpose NAS.

parameters.storageType

Tipe penyimpanan. general-purpose NAS mendukung Performance, Capacity, dan Premium.

parameters.protocolType

Protokol transfer file. Hanya NFS yang didukung.

parameters.encryptType

Opsi. Menentukan apakah akan mengaktifkan metode enkripsi.

  • None: Menonaktifkan enkripsi.

  • SSE-KMS: Mengaktifkan enkripsi sisi server dengan kunci yang dikelola oleh NAS. NAS membuat dan mengelola kunci di KMS untuk mengenkripsi setiap sistem file.

parameters.enableTrashCan

Menentukan apakah akan mengaktifkan fitur keranjang daur ulang untuk mencegah gangguan bisnis atau kehilangan data akibat penghapusan file yang tidak disengaja.

  • true: Mengaktifkan fitur.

  • false: Menonaktifkan fitur.

parameters.trashCanReservedDays

Periode retensi maksimum untuk file di keranjang daur ulang. Default adalah 7 hari. Dalam contoh ini, trashCanReservedDays: 5 menunjukkan bahwa file dipertahankan hingga 5 hari.

parameters.vSwitchId

ID vSwitch untuk sistem file NAS.

Untuk informasi tentang wilayah dan zona yang mendukung general-purpose NAS, lihat Wilayah dan zona.

  • Jalankan kubectl get cnfs untuk melihat sistem file NAS yang dibuat.

  • Jalankan kubectl get cnfs/cnfs-nas-filesystem -o yaml untuk melihat detail sistem file NAS.

    Untuk informasi selengkapnya tentang file YAML, lihat Referensi YAML CNFS.

2. Buat volume persisten atau kelas penyimpanan

Setelah Anda membuat resource CNFS, pilih cara aplikasi akan mengakses sistem file NAS.

  • Volume persisten statis: Ikatkan secara manual volume persisten ke direktori yang ada pada sistem file NAS. Ini cocok untuk skenario di mana Anda perlu mengakses data yang sudah ada.

  • Kelas penyimpanan dinamis: Buat kelas penyimpanan sebagai templat, memungkinkan aplikasi secara otomatis membuat subdirektori baru yang independen sesuai permintaan.

Penyediaan statis

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
    # Harus sama dengan nama PV.
    volumeHandle: cnfs-nas-pv 
    volumeAttributes:
      # Tentukan resource CNFS yang akan digunakan.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # Path pemasangan yang digunakan volume di CNFS.
      path: "/"
  mountOptions:
    - nolock,tcp,noresvport
    - vers=3
Untuk informasi selengkapnya tentang parameter volume persisten, lihat Menggunakan volume NAS statis.

Penyediaan dinamis

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alibabacloud-nas-cnfs
mountOptions:
  - nolock,tcp,noresvport
  - vers=3
parameters:
  volumeAs: subpath
  # Tentukan resource CNFS yang akan digunakan.
  containerNetworkFileSystem: cnfs-nas-filesystem
  # Path pemasangan yang digunakan volume di CNFS.
  path: "/"
provisioner: nasplugin.csi.alibabacloud.com
reclaimPolicy: Retain
# Atur ke true untuk mengizinkan kuota direktori volume diperluas.
allowVolumeExpansion: true
Untuk informasi selengkapnya tentang parameter kelas penyimpanan, lihat Menggunakan volume NAS dinamis.

3. Buat klaim volume persisten

Buat klaim volume persisten yang menggunakan volume persisten statis atau kelas penyimpanan yang telah Anda buat.

Penyediaan statis

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  selector:
    matchLabels:
      # Cocokkan secara tepat volume persisten yang dibuat sebelumnya menggunakan label.
      alicloud-pvname: cnfs-nas-pv   

Penyediaan dinamis

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

4. Buat aplikasi dan pasang sistem file NAS

Setelah klaim volume persisten dibuat, pasang di aplikasi Anda.

Kode contoh

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. Verifikasi hasil

Konsol

  1. Buat resource CNFS

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Volumes > CNFS.

  3. Klik Create CNFS File System dan konfigurasikan resource CNFS sesuai petunjuk.

    • Pilih sistem file NAS

    • Pilih Select Existing NAS File System, lalu klik Create NAS File System untuk membuat sistem file NAS kustom. Setelah sistem file dibuat, pilih sistem tersebut.

      Untuk informasi selengkapnya tentang cara membuat sistem file NAS, lihat Membuat sistem file NAS tujuan umum di konsol.
    • Jika diperlukan, aktifkan End-to-end Data Acceleration untuk menggunakan fitur akselerasi elastis saat pemasangan dan mengoptimalkan kinerja akses data. Untuk informasi selengkapnya, lihat Menggunakan klien EFC untuk memasang sistem file NAS melalui CNFS.

  1. Buat volume persisten atau kelas penyimpanan

PV

  1. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Volumes > Persistent Volumes.

  2. Klik Create, pilih PV Type untuk PV Type, lalu konfigurasikan volume persisten sesuai petunjuk.

    Parameter utama dijelaskan di bawah ini. Untuk deskripsi lengkap semua parameter, lihat Membuat PV.

    • Capacity: Kapasitas volume persisten. Kubernetes menggunakan nilai ini untuk mengikat PV ke PVC dan tidak memberlakukan batas kapasitas. Kapasitas penyimpanan yang sebenarnya adalah total kapasitas sistem file NAS dasar.

      Batas kapasitas sebenarnya dari sistem file NAS bergantung pada spesifikasinya. Untuk informasi selengkapnya, lihat General-purpose NAS.
    • Enable CNFS: Menentukan apakah akan menggunakan resource CNFS untuk mengelola volume.

    • Select CNFS: Resource CNFS yang akan digunakan.

    • Advanced Options (Optional):

      • Mount Path: Subdirektori NAS yang akan dipasang. Jika Anda tidak menentukan parameter ini, direktori root dipasang secara default. Direktori root sistem file NAS tujuan umum adalah /.

        Jika direktori tidak ada di sistem file NAS, sistem secara otomatis membuat dan memasangnya.
      • Reclaim Policy: CNFS hanya mendukung Retain.

      • Enable CNFS Acceleration: Menentukan apakah akan mengaktifkan fitur akselerasi CNFS. Untuk informasi selengkapnya, lihat Menggunakan klien EFC untuk memasang sistem file NAS melalui CNFS.

Kelas penyimpanan

  1. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Volumes > StorageClasses.

  2. Di halaman StorageClasses, klik Create, pilih PV Type untuk NAS, lalu konfigurasikan StorageClass sesuai petunjuk.

    Tabel berikut menjelaskan parameter utama. Untuk informasi selengkapnya, lihat Membuat StorageClass.

    • Select Mount Target: Pilih titik pemasangan sistem file NAS yang dibuat atau diadopsi menggunakan CNFS.

      Untuk informasi selengkapnya tentang cara melihat titik pemasangan, lihat Mengelola titik pemasangan.
    • Mount Path: Subdirektori NAS yang akan dipasang. Jika tidak ditentukan, direktori root (/) dipasang secara default.

      Jika direktori tidak ada di sistem file NAS, sistem secara otomatis membuat dan memasangnya.
    • Reclaim Policy:

      • Retain (Direkomendasikan): Setelah PVC dihapus, PV masuk ke status Released. Data NAS backend dipertahankan dan harus dihapus secara manual.

      • Delete: Menghapus PV saat PVC terkait dihapus. Kebijakan ini memerlukan archiveOnDelete. Namun, PV statis tidak mendukung archiveOnDelete. Oleh karena itu, ketika kebijakan ini diatur ke Delete, menghapus PVC tidak menghapus PV atau file di sistem file NAS.

        Untuk mengonfigurasi archiveOnDelete, lihat Menggunakan volume NAS yang disediakan secara dinamis.
  1. Buat PVC

  1. Di panel navigasi kiri halaman manajemen kluster, pilih Storage > PVCs.

  2. Di halaman Persistent Volume Claims, klik Create, pilih NAS untuk PVC Type, lalu konfigurasikan PVC sesuai petunjuk.

    • Allocation Mode: Mode penggunaan volume penyimpanan.

    • Existing StorageClass: Klik Select Storage Class dan pilih StorageClass yang telah Anda buat.

    • Capacity: Kapasitas volume penyimpanan. Nilai ini tidak boleh melebihi kapasitas yang tersedia pada sistem file NAS dasar.

    • Access Mode: Nilai default adalah ReadWriteMany. Anda juga dapat memilih ReadWriteOnce atau ReadOnlyMany.

  1. Buat aplikasi dan pasang sistem file NAS

Saat Anda membuat Deployment atau membuat StatefulSet, Anda dapat memasang PVC ke kontainer di bagian Volumes pada halaman Container.

Contoh ini menunjukkan cara memasang PVC ke path /data di kontainer.

Untuk Volume Type, pilih Cloud Volume. Untuk Mount Source, pilih cnfs-nas-pvc. Untuk Container Path, masukkan /data.

Metode 3: Menggunakan sistem file NAS yang sudah ada

Gunakan CNFS untuk mengadopsi sistem file NAS yang sudah ada ke dalam kluster Anda sehingga aplikasi dapat memasang dan mengaksesnya.

kubectl

1. Buat resource CNFS dari sistem file NAS yang sudah ada

Buat resource ContainerNetworkFileSystem yang mereferensikan titik pemasangan NAS.

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

Parameter

Parameter

Deskripsi

description

Deskripsi resource CNFS.

type

Tipe penyimpanan yang akan dibuat.

reclaimPolicy

Kebijakan pemulihan. Hanya Retain yang didukung. Kebijakan ini mencegah kehilangan data dengan memastikan sistem file NAS backend tidak dihapus saat Anda menghapus resource CNFS.

parameters.server

Alamat titik pemasangan NAS.

  • Jalankan kubectl get cnfs untuk melihat sistem file NAS yang dibuat.

  • Jalankan kubectl get cnfs/cnfs-nas-filesystem -o yaml untuk melihat detail sistem file NAS.

    Untuk informasi selengkapnya tentang file YAML, lihat Referensi YAML CNFS.

2. Buat volume persisten atau kelas penyimpanan

Setelah Anda membuat resource CNFS, pilih cara aplikasi akan mengakses sistem file NAS.

  • Volume persisten statis: Ikatkan secara manual volume persisten ke direktori yang ada pada sistem file NAS. Ini cocok untuk skenario di mana Anda perlu mengakses data yang sudah ada.

  • Kelas penyimpanan dinamis: Buat kelas penyimpanan sebagai templat, memungkinkan aplikasi secara otomatis membuat subdirektori baru yang independen sesuai permintaan.

Penyediaan statis

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
    # Harus sama dengan nama PV.
    volumeHandle: cnfs-nas-pv 
    volumeAttributes:
      # Tentukan resource CNFS yang akan digunakan.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # Path pemasangan yang digunakan volume di CNFS.
      path: "/"
  mountOptions:
    - nolock,tcp,noresvport
    - vers=3
Untuk informasi selengkapnya tentang parameter volume persisten, lihat Menggunakan volume NAS statis.

Penyediaan dinamis

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alibabacloud-nas-cnfs
mountOptions:
  - nolock,tcp,noresvport
  - vers=3
parameters:
  volumeAs: subpath
  # Tentukan resource CNFS yang akan digunakan.
  containerNetworkFileSystem: cnfs-nas-filesystem
  # Path pemasangan yang digunakan volume di CNFS.
  path: "/"
provisioner: nasplugin.csi.alibabacloud.com
reclaimPolicy: Retain
# Atur ke true untuk mengizinkan kuota direktori volume diperluas.
allowVolumeExpansion: true
Untuk informasi selengkapnya tentang parameter kelas penyimpanan, lihat Menggunakan volume NAS dinamis.

3. Buat klaim volume persisten

Buat klaim volume persisten yang menggunakan volume persisten statis atau kelas penyimpanan yang telah Anda buat.

Penyediaan statis

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  selector:
    matchLabels:
      # Cocokkan secara tepat volume persisten yang dibuat sebelumnya menggunakan label.
      alicloud-pvname: cnfs-nas-pv   

Penyediaan dinamis

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

4. Buat aplikasi dan pasang sistem file NAS

Setelah klaim volume persisten dibuat, pasang di aplikasi Anda.

Kode contoh

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. Verifikasi hasil

Konsol

  1. Buat resource CNFS dari sistem file NAS yang sudah ada

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Volumes > CNFS.

  3. Klik Create CNFS File System dan konfigurasikan resource CNFS sesuai petunjuk.

  4. Di panel Create CNFS File System, konfigurasikan parameter dan klik OK.

    • Pilih sistem file NAS.

    • Pilih Select Existing NAS File System lalu pilih titik pemasangan NAS yang sudah ada dari daftar drop-down.

    • Jika diperlukan, aktifkan End-to-end Data Acceleration untuk mempercepat pemasangan dan mengoptimalkan kinerja akses data. Untuk informasi selengkapnya, lihat Memasang sistem file NAS menggunakan klien EFC dengan CNFS.

  1. Buat volume persisten atau kelas penyimpanan

PV

  1. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Volumes > Persistent Volumes.

  2. Klik Create, pilih PV Type untuk PV Type, lalu konfigurasikan volume persisten sesuai petunjuk.

    Parameter utama dijelaskan di bawah ini. Untuk deskripsi lengkap semua parameter, lihat Membuat PV.

    • Capacity: Kapasitas volume persisten. Kubernetes menggunakan nilai ini untuk mengikat PV ke PVC dan tidak memberlakukan batas kapasitas. Kapasitas penyimpanan yang sebenarnya adalah total kapasitas sistem file NAS dasar.

      Kapasitas sebenarnya dari sistem file NAS bergantung pada spesifikasinya. Untuk informasi selengkapnya, lihat General-purpose NAS.
    • Enable CNFS: Menentukan apakah akan menggunakan resource CNFS untuk mengelola volume.

    • Select CNFS: Resource CNFS yang akan digunakan.

    • Advanced Options (Optional):

      • Mount Path: Subdirektori NAS yang akan dipasang. Jika Anda tidak menentukan parameter ini, direktori root dipasang secara default. Direktori root sistem file NAS tujuan umum adalah /.

        Jika direktori tidak ada di sistem file NAS, sistem secara otomatis membuat dan memasangnya.
      • Reclaim Policy: CNFS hanya mendukung Retain.

      • Enable CNFS Acceleration: Menentukan apakah akan mengaktifkan fitur akselerasi CNFS. Untuk informasi selengkapnya, lihat Menggunakan klien EFC untuk memasang sistem file NAS melalui CNFS.

Kelas penyimpanan

  1. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Volumes > StorageClasses.

  2. Di halaman StorageClasses, klik Create, pilih PV Type untuk NAS, lalu konfigurasikan StorageClass sesuai petunjuk.

    Tabel berikut menjelaskan parameter utama. Untuk informasi selengkapnya, lihat Membuat StorageClass.

    • Select Mount Target: Pilih titik pemasangan sistem file NAS yang dibuat atau diadopsi menggunakan CNFS.

      Untuk informasi selengkapnya tentang cara melihat titik pemasangan, lihat Mengelola titik pemasangan.
    • Mount Path: Subdirektori NAS yang akan dipasang. Jika tidak ditentukan, direktori root (/) dipasang secara default.

      Jika direktori tidak ada di sistem file NAS, sistem secara otomatis membuat dan memasangnya.
    • Reclaim Policy:

      • Retain (Direkomendasikan): Setelah PVC dihapus, PV masuk ke status Released. Data NAS backend dipertahankan dan harus dihapus secara manual.

      • Delete: Menghapus PV saat PVC terkait dihapus. Kebijakan ini memerlukan archiveOnDelete. Namun, PV statis tidak mendukung archiveOnDelete. Oleh karena itu, ketika kebijakan ini diatur ke Delete, menghapus PVC tidak menghapus PV atau file di sistem file NAS.

        Untuk mengonfigurasi archiveOnDelete, lihat Menggunakan volume NAS yang disediakan secara dinamis.
  1. Buat PVC

  1. Di panel navigasi kiri halaman manajemen kluster, pilih Storage > PVCs.

  2. Di halaman Persistent Volume Claims, klik Create, pilih NAS untuk PVC Type, lalu konfigurasikan PVC sesuai petunjuk.

    • Allocation Mode: Mode penggunaan volume penyimpanan.

    • Existing StorageClass: Klik Select Storage Class dan pilih StorageClass yang telah Anda buat.

    • Capacity: Kapasitas volume penyimpanan. Nilai ini tidak boleh melebihi kapasitas yang tersedia pada sistem file NAS dasar.

    • Access Mode: Nilai default adalah ReadWriteMany. Anda juga dapat memilih ReadWriteOnce atau ReadOnlyMany.

  1. Buat aplikasi dan pasang sistem file NAS

Saat Anda membuat Deployment atau membuat StatefulSet, Anda dapat memasang PVC ke kontainer di bagian Volumes pada halaman Container.

Contoh ini menunjukkan cara memasang PVC ke path /data di kontainer.

Untuk Volume Type, pilih Cloud Volume. Untuk Mount Source, pilih cnfs-nas-pvc. Untuk Container Path, masukkan /data.

Mengonfigurasi penyimpanan bersama dan terisolasi

Setelah Anda membuat atau mengintegrasikan sistem file NAS, konfigurasikan untuk berbagi data atau isolasi data sesuai kebutuhan beban kerja Anda.

Konfigurasikan volume NAS bersama

Untuk berbagi data antar pod, pasang direktori yang sama dari sistem file NAS ke beberapa pod.

  • Mekanisme inti: Metode ini menggunakan volume penyimpanan statis. Di volume persisten (PV), path yang dideklarasikan identik dengan path akhir yang dipasang oleh Container Storage Interface (CSI). Oleh karena itu, saat beberapa pod memasang PV statis ini menggunakan PersistentVolumeClaim (PVC) yang sama, semuanya mengakses direktori penyimpanan yang sama, memungkinkan berbagi data.

  • Konfigurasi utama: Di templat pod (.spec.template) beban kerja Anda, atur parameter persistentVolumeClaim.claimName di bawah field volumes ke nama PVC yang sama.

1. Buat PV dan PVC yang mengarah ke direktori tertentu

Lihat kode contoh

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:
      # Tentukan resource 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
  # Referensikan PV.
  volumeName: cnfs-nas-static-pv
status:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 50Gi

2. Buat deployment contoh

Lihat kode contoh

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"
          # Referensikan volume yang didefinisikan di bawah volumes.
          name: cnfs-nas-pvc
      volumes:
      # Definisikan volume bernama cnfs-nas-pvc.
      - name: cnfs-nas-pvc
        # Semua replika pod mereferensikan PVC yang sama melalui konfigurasi ini untuk mengaktifkan penyimpanan bersama.
        persistentVolumeClaim:
          claimName: cnfs-nas-static-pvc

3. Verifikasi hasil

  1. Periksa status pemasangan

    Periksa status pemasangan pod.

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

    Output yang diharapkan mencakup titik pemasangan, yang mengonfirmasi pemasangan berhasil.

    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. Verifikasi penyimpanan bersama dan persisten deployment.

Konfigurasikan volume NAS terisolasi

Untuk mencapai isolasi data untuk skenario seperti multi-tenancy, Anda dapat menyediakan direktori penyimpanan independen dan terisolasi untuk setiap pod atau kelompok pod.

  • Mekanisme inti: Metode ini menggunakan volume penyimpanan dinamis. Di kelas penyimpanan, driver CSI secara otomatis membuat subdirektori terpisah dengan nama yang sama seperti PV di bawah path yang dideklarasikan. Subdirektori ini berfungsi sebagai titik pemasangan. Akibatnya, setiap PVC terikat ke direktori penyimpanan terpisah, memungkinkan isolasi data.

  • Konfigurasi utama:

    • Di kelas penyimpanan yang terkait dengan statefulset, gunakan parameter volumeAs: subpath (nilai default) di bawah parameters untuk membuat subdirektori terisolasi untuk setiap permintaan PVC.

    • Di statefulset, definisikan volumeClaimTemplates untuk secara otomatis membuat dan mengikat PVC terpisah untuk setiap pod.

1. Buat kelas penyimpanan yang mendukung subdirektori dinamis

Lihat kode contoh

Kelas penyimpanan ini mereferensikan CNFS yang ditentukan, dan volumeAs: subpath menginstruksikan driver CSI untuk secara dinamis membuat subdirektori terisolasi untuk setiap permintaan PVC.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cnfs-nas-sc
mountOptions:
  - nolock,tcp,noresvport
  - vers=3
parameters:
  # Parameter inti untuk mengimplementasikan volume penyimpanan terisolasi.
  volumeAs: subpath
  # Referensikan resource CNFS yang dibuat.
  containerNetworkFileSystem: cnfs-nas-filesystem
  # Tentukan path root untuk membuat subdirektori pada sistem file NAS.
  # Driver CSI membuat subdirektori di bawah path ini. Nama direktori sama dengan nama PV yang dihasilkan secara otomatis.
  path: "/"
  archiveOnDelete: "false"
provisioner: nasplugin.csi.alibabacloud.com
# Secara otomatis menghapus subdirektori NAS yang sesuai saat PVC dihapus.
reclaimPolicy: Delete
allowVolumeExpansion: true

2. Buat statefulset contoh

Lihat kode contoh

Secara dinamis membuat dan memasang volume penyimpanan terisolasi untuk setiap pod berdasarkan volumeClaimTemplates.

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
  # Bagian volumeClaimTemplates secara otomatis membuat PVC untuk setiap pod berdasarkan templat berikut.
  volumeClaimTemplates:
  - metadata:
      name: pvc
    spec:
      accessModes: [ "ReadWriteOnce" ]
      # Referensikan kelas penyimpanan yang dibuat sebelumnya.
      storageClassName: "cnfs-nas-sc" 
      resources:
        requests:
          # Ini hanya digunakan untuk keputusan penjadwalan dan tidak mewakili batas kuota nyata. Kapasitas yang tersedia sebenarnya adalah total kapasitas sistem file NAS.
          storage: 50Gi  

3. Verifikasi hasil

  1. Periksa status pemasangan

    Periksa informasi pemasangan untuk pod, seperti cnfs-nas-sts-0.

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

    Output yang diharapkan menunjukkan bahwa subdirektori sistem file NAS berhasil dipasang ke path /data pod.

    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. Verifikasi isolasi data dan penyimpanan persisten statefulset.

Rekomendasi untuk lingkungan produksi

  • Keamanan data

    • Enkripsi data: Saat membuat sistem file NAS baru, atur parameters ke encryptType: SSE-KMS di CNFS untuk mengaktifkan enkripsi data saat diam di server NAS dan meningkatkan keamanan data.

    • Proteksi data dan kebijakan pemulihan: reclaimPolicy untuk CNFS tetap Retain. Menghapus objek CNFS di Kubernetes tidak menghapus instans NAS backend. Namun, kebijakan pemulihan PV ditentukan oleh StorageClass-nya. Di lingkungan produksi, kami merekomendasikan agar Anda mengatur kebijakan ke Retain untuk mencegah penghapusan yang tidak disengaja.

    • Fitur keranjang daur ulang: Saat membuat NAS, kami merekomendasikan agar Anda mengaktifkan fitur keranjang daur ulang dengan parameter enableTrashCan: "true" untuk mencegah penghapusan yang tidak disengaja.

    • Penulisan konkuren: Saat beberapa Pod memasang volume penyimpanan bersama yang sama, rancang aplikasi Anda untuk mencegah penulisan konkuren ke file yang sama, yang dapat menyebabkan korupsi data.

  • Operasi dan manajemen

    • Isolasi performa: Meskipun volume penyimpanan terisolasi memberikan isolasi tingkat data, semuanya berbagi IOPS dan throughput dari instans NAS backend yang sama. Untuk aplikasi inti yang memerlukan performa I/O ketat dan latensi stabil, sediakan sistem file NAS khusus.

    • Manajemen kapasitas: Atur allowVolumeExpansion: true di StorageClass untuk memperluas kuota direktori volume penyimpanan.

      Nilai requests.storage di PVC terutama digunakan untuk keputusan penjadwalan dan bukan batas kuota untuk seluruh sistem file NAS.
    • Pemantauan dan peringatan: Gunakan pemantauan penyimpanan kontainer untuk mengonfigurasi peringatan untuk metrik utama seperti utilisasi kapasitas, IOPS, dan throughput untuk secara proaktif mengidentifikasi hambatan kapasitas atau performa.

  • Optimasi biaya

    • Pilih tipe penyimpanan yang tepat: Pilih tipe NAS berdasarkan kebutuhan biaya dan performa Anda. Untuk panduan, lihat Memilih tipe NAS. Misalnya, Capacity NAS menawarkan harga lebih rendah dan cocok untuk beban kerja berbagi file atau arsip yang tidak memerlukan latensi rendah.

    • Lepaskan resource segera: Saat aplikasi dihentikan, bersihkan resource yang tidak digunakan. Konfirmasi apakah Anda perlu menghapus sistem file NAS backend untuk menghindari biaya yang tidak perlu.

Referensi

Verifikasi penyimpanan bersama, isolasi data, dan penyimpanan persisten

Setelah memasang sistem file NAS, ikuti langkah-langkah berikut untuk memverifikasi bahwa penyimpanan berfungsi sesuai harapan.

  • Verifikasi penyimpanan bersama dan persisten untuk deployment

    Langkah

    Penyimpanan bersama

    Penyimpanan persisten

    Buat file di satu pod dan lihat di pod lain untuk memverifikasi penyimpanan bersama.

    1. Daftar pod untuk mendapatkan nama mereka.

      kubectl get pod | grep cnfs-nas-deployment

      Output yang diharapkan:

      cnfs-nas-deployment-*****a 1/1 Running 0 40s
      cnfs-nas-deployment-*****b 1/1 Running 0 40s
    2. Buat file di salah satu pod. Contoh ini menggunakan pod bernama cnfs-nas-deployment-*****a:

      kubectl exec cnfs-nas-deployment-*****a -- touch /data/test.txt
    3. Periksa apakah file tersebut ada di pod lain. Contoh ini menggunakan pod bernama cnfs-nas-deployment-*****b:

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

      Output yang diharapkan:

      test.txt

      Output ini mengonfirmasi bahwa data dibagikan antar pod.

      Penting

      CNFS tidak menjamin konsistensi data saat beberapa pod menulis ke penyimpanan bersama. Untuk mencegah korupsi file, hindari penulisan konkuren ke file yang sama.

    Ulangi deployment dan periksa apakah data ada di pod baru untuk memverifikasi penyimpanan persisten.

    1. Mulai ulang deployment untuk memicu pembuatan ulang pod.

      kubectl rollout restart deploy cnfs-nas-deployment
    2. Daftar pod dan tunggu pod baru mulai dan masuk ke status Running.

      kubectl get pod | grep cnfs-nas-deployment

      Output yang diharapkan:

      cnfs-nas-deployment-*****c 1/1 Running 0 67s
      cnfs-nas-deployment-*****d 1/1 Running 0 49s
    3. Di pod baru, periksa apakah file yang dibuat sebelumnya ada. Contoh ini menggunakan pod bernama cnfs-nas-deployment-*****c:

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

      Output yang diharapkan:

      test.txt

      Output ini mengonfirmasi bahwa penyimpanan bersifat persisten.

  • Verifikasi isolasi data dan penyimpanan persisten untuk StatefulSet

    Langkah

    Setiap pod di StatefulSet memiliki PVC-nya sendiri, sehingga datanya diisolasi.

    Isolasi data

    Penyimpanan persisten

    Buat file di satu pod dan pastikan file tersebut tidak ada di pod lain. Ini memverifikasi isolasi data antar volume penyimpanan pod.

    1. Daftar pod untuk mendapatkan nama mereka.

      kubectl get pod | grep cnfs-nas-sts

      Output yang diharapkan:

      cnfs-nas-sts-0 1/1 Running 0 5m
      cnfs-nas-sts-1 1/1 Running 0 5m
    2. Buat file di salah satu pod. Contoh berikut menggunakan pod bernama cnfs-nas-sts-0 untuk membuat file dengan nama yang berbeda:

      kubectl exec cnfs-nas-sts-0 -- touch /data/sts-0-data.txt
    3. Periksa apakah file tersebut ada di pod lain. Contoh ini menggunakan pod bernama cnfs-nas-sts-1:

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

      Output yang diharapkan tidak menunjukkan file yang dibuat di cnfs-nas-sts-0. Ini mengonfirmasi bahwa setiap pod StatefulSet menggunakan volume penyimpanan independen dan datanya diisolasi.

    Hapus pod tertentu, tunggu hingga dibuat ulang, dan periksa apakah data masih ada di pod baru.

    1. Hapus pod untuk memicu pembuatan ulangnya. Contoh ini menghapus cnfs-nas-sts-0:

      kubectl delete pod cnfs-nas-sts-0
    2. Daftar pod dan tunggu pod dengan nama yang sama mencapai status Running. StatefulSet membuat ulang pod dengan nama dan identitas yang sama.

      kubectl get pod | grep cnfs-nas-sts

      Output yang diharapkan:

      cnfs-nas-sts-0                        1/1     Running   0          19s
      cnfs-nas-sts-1                        1/1     Running   0          102s
    3. Di pod baru, periksa apakah file yang dibuat sebelumnya ada.

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

      Output ini mengonfirmasi bahwa penyimpanan bersifat persisten.

      sts-0-data.txt

CNFS YAML

Jalankan perintah kubectl get cnfs/<cnfsName> -o yaml untuk melihat konfigurasi lengkap dan status real-time objek CNFS.

Bagian ini memberikan contoh output dari menjalankan perintah kubectl get cnfs/cnfs-nas-filesystem -o yaml untuk skenario yang dijelaskan di Metode 2.

Contoh YAML

YAML

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

Parameter

Parameter

Parameter

Deskripsi

status

Status saat ini objek CNFS. Nilai yang mungkin termasuk Pending, Creating, Initialization (sistem file sedang dibuat), Available, Unavailable (dapat dipulihkan), Fatal (tidak dapat dipulihkan), dan Terminating.

conditions.lastProbeTime

Timestamp probe kesehatan terakhir.

conditions.reason

Alasan status saat ini.

conditions.status

Ready menunjukkan resource tersedia; NotReady menunjukkan tidak tersedia.

fsAttributes.accessGroupName

Nama grup izin yang diterapkan pada titik pemasangan. Saat ini, hanya DEFAULT_VPC_GROUP_NAME (grup izin VPC default) yang didukung.

fsAttributes.encryptType

Opsi. Menentukan apakah akan mengaktifkan metode enkripsi.

  • None: Menonaktifkan enkripsi.

  • SSE-KMS: Mengaktifkan enkripsi sisi server dengan kunci yang dikelola oleh NAS. NAS membuat dan mengelola kunci di KMS untuk mengenkripsi setiap sistem file.

fsAttributes.enableTrashCan

Menentukan apakah akan mengaktifkan fitur keranjang daur ulang untuk mencegah gangguan bisnis atau kehilangan data akibat penghapusan file yang tidak disengaja.

  • true: Mengaktifkan fitur.

  • false: Menonaktifkan fitur.

fsAttributes.filesystemId

ID sistem file.

fsAttributes.filesystemType

Tipe sistem file. Default adalah General-purpose NAS, ditentukan sebagai standard.

fsAttributes.protocolType

Tipe protokol transfer file. Saat ini, hanya Protokol NFS yang didukung.

fsAttributes.regionId

Wilayah tempat objek CNFS berada.

fsAttributes.server

Alamat titik pemasangan NAS.

fsAttributes.storageType

Tipe penyimpanan. General-purpose NAS mendukung tipe Performance, Capacity, dan Premium.

fsAttributes.vSwitchId

vSwitch yang digunakan oleh objek CNFS.

fsAttributes.vpcId

VPC tempat objek CNFS berada.

fsAttributes.zoneId

Zona ketersediaan tempat objek CNFS berada.

Pembersihan resource

Untuk menghindari biaya tak terduga dan memastikan keamanan data, ikuti langkah-langkah berikut untuk melepaskan resource yang tidak lagi Anda butuhkan.

  1. Hapus beban kerja

    • Aksi: Hapus semua aplikasi yang menggunakan PVC terkait, seperti deployment dan StatefulSets. Tindakan ini menghentikan pod dan melepas volume penyimpanan.

    • Perintah contoh: kubectl delete deployment <your-deployment-name>

  2. Hapus PVC

    • Aksi: Hapus PVC yang terkait dengan aplikasi. Hasil penghapusan PV bergantung pada reclaimPolicy.

      • Retain (direkomendasikan): Setelah Anda menghapus PVC, data dan direktori di NAS backend dipertahankan.

      • Delete: Setelah Anda menghapus PVC, PV yang terikat juga dihapus. Cara NAS backend menangani data dan direktori bergantung pada parameter archiveOnDelete di StorageClass.

        • "true" (default): Alih-alih dihapus, direktori dan file diganti namanya menjadi archived-{pvName}.{timestamp}.

        • "false" : Data dihapus secara permanen. Tindakan ini tidak dapat dibatalkan. Gunakan pengaturan ini dengan hati-hati.

    • Perintah contoh: kubectl delete pvc <your-pvc-name>

  3. Hapus PV

    • Aksi: Hapus PV. Langkah ini terutama berlaku untuk PV yang disediakan secara statis atau PV yang berada dalam status Released karena kebijakan pemulihannya diatur ke Retain.

      Tindakan ini hanya menghapus definisi resource dari Kubernetes dan tidak menghapus data NAS backend.
    • Perintah contoh: kubectl delete pv <your-pv-name>

  4. Hapus definisi penyimpanan Kubernetes (Opsional)

    • Aksi: Hapus objek StorageClass dan CNFS jika tidak lagi diperlukan.

      Tindakan ini hanya menghapus definisi resource dari Kubernetes dan tidak menghapus data NAS backend.
    • Perintah contoh: kubectl delete sc <your-storageclass-name>, kubectl delete cnfs <your-cnfs-name>

  5. Hapus sistem file NAS backend

    • Aksi: Lihat Menghapus sistem file. Tindakan ini menghapus semua data di NAS secara permanen dan tidak dapat dibatalkan. Lakukan dengan hati-hati. Sebelum melakukan tindakan ini, pastikan tidak ada beban kerja yang bergantung pada NAS ini.