All Products
Search
Document Center

Container Service for Kubernetes:Mengelola sistem file NAS menggunakan CNFS

Last Updated:Aug 21, 2026

Container Network File System (CNFS) memungkinkan Anda mengelola sistem file NAS sebagai objek Kubernetes native yang dapat dibuat dan digunakan secara deklaratif. Fitur ini menyediakan volume persisten yang sederhana dan efisien untuk beban kerja seperti situs web dan analitik data, serta mendukung berbagai kasus penggunaan seperti berbagi dan isolasi data.

Prasyarat

  • Diperlukan kluster ACK Pro managed versi 1.20 atau lebih baru. Untuk meningkatkan kluster, lihat Tingkatkan kluster secara manual.

    Manajemen kubectl terhadap CNFS memerlukan versi 1.20 atau lebih baru.
  • Diperlukan versi add-on penyimpanan berikut. Untuk meningkatkan 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.

  • Layanan File Storage NAS harus diaktifkan. Batasan berikut berlaku untuk sistem file NAS. Untuk informasi selengkapnya, lihat Batasan.

    • Hanya sistem file NAS tujuan umum tipe Capacity, Performance, dan Premium yang didukung; NAS Extreme tidak didukung.

    • Terdapat batas maksimum jumlah sistem file NAS yang dapat dibuat per akun dalam satu wilayah.

    • Untuk menggunakan enkripsi KMS pada sistem file NAS, aktifkan layanan KMS. Untuk informasi selengkapnya, lihat Aktifkan Key Management Service.

Buat sistem file NAS

Buat dan gunakan sistem file NAS

Sebelum memulai, pilih cara menyediakan sistem file NAS untuk kluster Anda.

Metode

Deskripsi

Metode penyediaan volume

Kasus penggunaan

Metode 1: Buat dan gunakan sistem file NAS default

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

dynamic volume

  • Untuk validasi fitur cepat.

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

Metode 2: Buat dan gunakan sistem file NAS kustom

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

  • dynamic volume

  • static volume

Saat Anda memiliki kebutuhan spesifik terkait performa, enkripsi, atau biaya, atau memerlukan manajemen penyimpanan detail halus.

Metode 3: Kelola dan gunakan sistem file NAS yang sudah ada

CNFS mengintegrasikan sistem file NAS yang sudah ada untuk manajemen terpusat.

  • dynamic volume

  • static volume

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

Metode 1: Membuat sistem file NAS secara otomatis

Anda dapat menggunakan Container Network File System (CNFS) untuk membuat sistem file NAS secara otomatis dengan konfigurasi default. CNFS membuat sistem file berdasarkan lingkungan kluster Anda. Secara default, sistem file tersebut tidak dienkripsi. Jika NAS Capacity tidak didukung di wilayah saat ini, sistem file NAS Performance akan dibuat sebagai gantinya.

Setelah Anda membuat resource CNFS dan StorageClass, beban kerja Anda dapat meminta penyimpanan dengan menggunakan PersistentVolumeClaim (PVC). Hal ini secara dinamis membuat PersistentVolume (PV) pada sistem file NAS dan memasangnya ke Pod.

kubectl

1. Buat 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. Instans NAS backend tidak dihapus saat CNFS dihapus.
  reclaimPolicy: Retain
  parameters:
    # Menentukan apakah akan mengaktifkan enkripsi yang dikelola NAS. Atur ke SSE-KMS untuk mengaktifkan fitur ini.
    encryptType: SSE-KMS
    # Menentukan apakah akan mengaktifkan fitur Keranjang daur ulang. Atur ke "true" untuk mengaktifkannya.
    enableTrashCan: "true"

Parameter

Parameter

Deskripsi

description

Deskripsi CNFS.

type

Tipe volume. Atur nilai ini ke nas.

reclaimPolicy

Kebijakan pemulihan. Saat ini, hanya Retain yang didukung. Kebijakan ini mencegah kehilangan data dengan memastikan sistem file NAS backend tidak dihapus saat objek CNFS dihapus.

parameters.encryptType

Opsional. Menentukan metode enkripsi.

  • None: Menonaktifkan enkripsi.

  • SSE-KMS: Mengaktifkan enkripsi yang dikelola NAS. Kunci yang sepenuhnya dikelola oleh NAS digunakan untuk mengenkripsi setiap sistem file. Kunci ini dibuat dan dikelola oleh NAS di Key Management Service (KMS).

parameters.enableTrashCan

Mengaktifkan Keranjang daur ulang untuk mencegah gangguan bisnis dan kehilangan data akibat penghapusan file yang tidak disengaja.

  • true: Mengaktifkan fitur ini.

  • false: Menonaktifkan fitur ini.

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

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

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

2. Buat StorageClass

Buat objek StorageClass sebagai templat penyimpanan. Gunakan parameter containerNetworkFileSystem untuk mengaitkannya dengan CNFS yang telah Anda buat sebelumnya.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alibabacloud-cnfs-nas
provisioner: nasplugin.csi.alibabacloud.com
parameters:
  # Subdirektori terpisah dibuat di bawah direktori root NAS untuk setiap PVC.
  volumeAs: subpath
  # Mengaitkan dengan CNFS yang didefinisikan di atas.
  containerNetworkFileSystem: cnfs-nas-filesystem
  path: "/"
# Kami merekomendasikan mengatur nilai ini ke Retain untuk mempertahankan data subdirektori backend saat PVC dihapus.
reclaimPolicy: Retain
# Mengizinkan ekspansi volume.
allowVolumeExpansion: true
mountOptions:
  - nolock,tcp,noresvport
  - vers=3

3. Buat PVC

Aplikasi meminta volume dengan menggunakan 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 bernilai true, nilai storage digunakan sebagai kuota untuk subdirektori yang sesuai dengan PVC ini. Jumlah maksimum data yang dapat ditulis ke direktori yang dibuat secara dinamis adalah 70 GiB.
      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: Dengan menggunakan templat volumeClaimTemplates, PVC unik secara otomatis dibuat untuk setiap replika Pod. Setiap PVC dipasang ke subdirektori khusus pada sistem file NAS backend untuk isolasi 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 bernilai true, parameter storage berlaku. Jumlah maksimum data yang dapat ditulis ke direktori yang dibuat secara dinamis adalah 50 GiB.
              storage: 50Gi 

5. Verifikasi hasil

Konsol

1. Buat 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 konfigurasi CNFS sesuai petunjuk di layar.

    • Pilih Sistem File NAS

    • Pilih Create Default NAS File System

    Setelah CNFS dibuat, Anda dapat mengklik namanya di daftar CNFS untuk melihat detailnya. Lalu, klik ID NAS untuk membuka halaman detail sistem file NAS yang telah dibuat. Klik tab Mount Targets. Anda dapat menemukan alamat titik pemasangan di 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. Atur PV Type ke NAS dan konfigurasi StorageClass sesuai petunjuk di layar.

    Parameter utama dijelaskan di bawah ini. Untuk informasi selengkapnya, lihat Buat StorageClass.

    • Select Mount Target: Pilih alamat titik pemasangan sistem file NAS yang dibuat atau dikelola oleh CNFS.

      Untuk informasi selengkapnya tentang cara melihat alamat titik pemasangan, lihat Kelola titik pemasangan.
    • Mount Path: Subdirektori NAS yang akan dipasang. Jika Anda tidak menentukan parameter ini, direktori root akan dipasang secara default. Direktori root sistem file NAS tujuan umum adalah /.

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

      • Retain (default): Saat PVC dihapus, PV dan file NAS tidak dihapus. Anda harus menghapusnya secara manual.

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

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

3. Buat PVC

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

  2. Di halaman Persistent Volume Claims, klik Create. Atur PVC Type ke NAS dan konfigurasi PVC sesuai petunjuk di layar.

    • Allocation Mode: Metode penyediaan volume.

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

    • Capacity: Kapasitas volume yang akan dibuat. Nilai ini tidak boleh melebihi kapasitas total sistem file NAS.

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

4. Buat aplikasi dan pasang sistem file NAS

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

Contoh berikut menunjukkan cara memasang sistem file NAS yang dibuat menggunakan CNFS ke path /data dalam kontainer.

Detail konfigurasi: Atur Volume Type ke Cloud Storage, pilih PVC NAS CNFS yang sesuai (misalnya, cnfs-nas-pvc) untuk Mount Source, dan masukkan /data untuk Container Path.

Metode 2: Buat sistem file NAS kustom

Gunakan Container Network File System (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 dalam kluster dengan membuat volume persisten statis (PV) atau StorageClass dinamis.

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

type

Tipe volume. Atur nilai ini ke nas.

reclaimPolicy

Kebijakan pemulihan. Saat ini, hanya Retain yang didukung. Kebijakan ini mencegah kehilangan data dengan memastikan sistem file NAS backend tidak dihapus saat objek CNFS dihapus.

parameters.filesystemType

Tipe sistem file. Default-nya adalah NAS tujuan umum, ditentukan sebagai standard.

parameters.storageType

Tipe penyimpanan. NAS tujuan umum mendukung tipe Performance, Capacity, dan Premium.

parameters.protocolType

Protokol transfer file. Hanya protokol NFS yang didukung.

parameters.encryptType

Opsional. Menentukan metode enkripsi.

  • None: Menonaktifkan enkripsi.

  • SSE-KMS: Mengaktifkan enkripsi yang dikelola NAS. Kunci yang sepenuhnya dikelola oleh NAS digunakan untuk mengenkripsi setiap sistem file. Kunci ini dibuat dan dikelola oleh NAS di Key Management Service (KMS).

parameters.enableTrashCan

Mengaktifkan Keranjang daur ulang untuk mencegah gangguan bisnis dan kehilangan data akibat penghapusan file yang tidak disengaja.

  • true: Mengaktifkan fitur ini.

  • false: Menonaktifkan fitur ini.

parameters.trashCanReservedDays

Menentukan periode retensi maksimum untuk file di Keranjang daur ulang. Nilai default adalah 7 hari. Misalnya, trashCanReservedDays: 5 menunjukkan bahwa file dipertahankan maksimal selama 5 hari.

parameters.vSwitchId

ID vSwitch untuk sistem file NAS.

Untuk informasi tentang wilayah dan zona ketersediaan yang mendukung NAS tujuan umum, lihat Wilayah dan zona ketersediaan.

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

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

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

2. Buat PV atau StorageClass

Setelah membuat CNFS, pilih cara aplikasi Anda terhubung dan menggunakan sistem file NAS.

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

  • StorageClass dinamis: Buat StorageClass sebagai templat, memungkinkan aplikasi secara otomatis membuat subdirektori baru dan independen sesuai permintaan.

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

Dynamic StorageClass

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

3. Buat PVC

Buat klaim volume persisten (PVC) yang mereferensikan sistem file NAS berdasarkan volume persisten statis atau StorageClass dinamis yang telah Anda buat sebelumnya.

Static PV

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  selector:
    matchLabels:
      # Mencocokkan PV yang dibuat sebelumnya menggunakan pemilih label.
      alicloud-pvname: cnfs-nas-pv   

Dynamic StorageClass

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 (PVC) dibuat, pasang PV yang terikat ke 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 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 konfigurasi parameter 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 Buat sistem file NAS tujuan umum menggunakan konsol.
  1. Buat PV atau StorageClass

PV

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

  2. Klik Create, atur PV Type ke NAS, lalu konfigurasi parameter PV sesuai petunjuk.

    Daftar berikut menjelaskan parameter utama. Untuk deskripsi parameter lengkap, lihat Buat PV.

    • Capacity: Menentukan kapasitas untuk PV. Nilai ini digunakan untuk mencocokkan PV dengan PVC dan tidak membatasi ukuran penyimpanan aktual. Aplikasi Anda dapat menggunakan kapasitas penuh sistem file NAS yang mendasarinya.

      Kapasitas aktual sistem file NAS ditentukan oleh spesifikasinya. Untuk informasi selengkapnya, lihat NAS tujuan umum.
    • Enable CNFS: Menentukan apakah akan mengaktifkan CNFS.

    • Select CNFS: Jika Anda mengaktifkan CNFS, pilih CNFS yang telah Anda buat sebelumnya.

    • Advanced Options (Optional):

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

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

StorageClass

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

  2. Di halaman StorageClasses, klik Create. Atur PV Type ke NAS dan konfigurasi StorageClass sesuai petunjuk di layar.

    Parameter utama dijelaskan di bawah ini. Untuk informasi selengkapnya, lihat Buat StorageClass.

    • Select Mount Target: Pilih alamat titik pemasangan sistem file NAS yang dibuat atau dikelola oleh CNFS.

      Untuk informasi selengkapnya tentang cara melihat alamat titik pemasangan, lihat Kelola titik pemasangan.
    • Mount Path: Subdirektori NAS yang akan dipasang. Jika Anda tidak menentukan parameter ini, direktori root akan dipasang secara default. Direktori root sistem file NAS tujuan umum adalah /.

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

      • Retain (default): Saat PVC dihapus, PV dan file NAS tidak dihapus. Anda harus menghapusnya secara manual.

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

        Untuk mengonfigurasi archiveOnDelete, lihat Gunakan 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. Atur PVC Type ke NAS dan konfigurasi PVC sesuai petunjuk di layar.

    • Allocation Mode: Metode penyediaan volume.

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

    • Capacity: Kapasitas volume yang akan dibuat. Nilai ini tidak boleh melebihi kapasitas total sistem file NAS.

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

  1. Buat aplikasi dan pasang sistem file NAS

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

Contoh berikut menunjukkan cara memasang sistem file NAS yang dibuat menggunakan CNFS ke path /data dalam kontainer.

Detail konfigurasi: Atur Volume Type ke Cloud Storage, pilih PVC NAS CNFS yang sesuai (misalnya, cnfs-nas-pvc) untuk Mount Source, dan masukkan /data untuk Container Path.

Metode 3: Gunakan sistem file NAS yang sudah ada

Gunakan CNFS untuk menghubungkan sistem file NAS yang sudah ada ke kluster Anda, sehingga tersedia untuk aplikasi.

kubectl

1. Buat CNFS untuk 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 singkat sistem file.

type

Tipe penyimpanan. Atur nilai ini ke nas.

reclaimPolicy

Kebijakan pemulihan. Saat ini, hanya Retain yang didukung. Kebijakan ini mencegah kehilangan data dengan memastikan sistem file NAS backend tidak dihapus saat objek CNFS dihapus.

parameters.server

Alamat titik pemasangan NAS.

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

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

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

2. Buat PV atau StorageClass

Setelah membuat CNFS, pilih cara aplikasi Anda terhubung dan menggunakan sistem file NAS.

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

  • StorageClass dinamis: Buat StorageClass sebagai templat, memungkinkan aplikasi secara otomatis membuat subdirektori baru dan independen sesuai permintaan.

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

Dynamic StorageClass

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

3. Buat PVC

Buat klaim volume persisten (PVC) yang mereferensikan sistem file NAS berdasarkan volume persisten statis atau StorageClass dinamis yang telah Anda buat sebelumnya.

Static PV

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  selector:
    matchLabels:
      # Mencocokkan PV yang dibuat sebelumnya menggunakan pemilih label.
      alicloud-pvname: cnfs-nas-pv   

Dynamic StorageClass

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 (PVC) dibuat, pasang PV yang terikat ke 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 CNFS yang menggunakan 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 ikuti petunjuk di layar untuk mengonfigurasi CNFS.

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

    • Pilih tipe sistem file NAS.

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

    • Opsional. Aktifkan End-to-end Data Acceleration untuk menggunakan akselerasi elastis saat pemasangan dan mengoptimalkan kinerja akses data.

  1. Buat PV atau StorageClass

PV

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

  2. Klik Create, atur PV Type ke NAS, lalu konfigurasi parameter PV sesuai petunjuk.

    Daftar berikut menjelaskan parameter utama. Untuk deskripsi parameter lengkap, lihat Buat PV.

    • Capacity: Menentukan kapasitas untuk PV. Nilai ini digunakan untuk mencocokkan PV dengan PVC dan tidak membatasi ukuran penyimpanan aktual. Aplikasi Anda dapat menggunakan kapasitas penuh sistem file NAS yang mendasarinya.

      Kapasitas aktual sistem file NAS ditentukan oleh spesifikasinya. Untuk informasi selengkapnya, lihat NAS tujuan umum.
    • Enable CNFS: Menentukan apakah akan mengaktifkan CNFS.

    • Select CNFS: Jika Anda mengaktifkan CNFS, pilih CNFS yang telah Anda buat sebelumnya.

    • Advanced Options (Optional):

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

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

StorageClass

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

  2. Di halaman StorageClasses, klik Create. Atur PV Type ke NAS dan konfigurasi StorageClass sesuai petunjuk di layar.

    Parameter utama dijelaskan di bawah ini. Untuk informasi selengkapnya, lihat Buat StorageClass.

    • Select Mount Target: Pilih alamat titik pemasangan sistem file NAS yang dibuat atau dikelola oleh CNFS.

      Untuk informasi selengkapnya tentang cara melihat alamat titik pemasangan, lihat Kelola titik pemasangan.
    • Mount Path: Subdirektori NAS yang akan dipasang. Jika Anda tidak menentukan parameter ini, direktori root akan dipasang secara default. Direktori root sistem file NAS tujuan umum adalah /.

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

      • Retain (default): Saat PVC dihapus, PV dan file NAS tidak dihapus. Anda harus menghapusnya secara manual.

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

        Untuk mengonfigurasi archiveOnDelete, lihat Gunakan 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. Atur PVC Type ke NAS dan konfigurasi PVC sesuai petunjuk di layar.

    • Allocation Mode: Metode penyediaan volume.

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

    • Capacity: Kapasitas volume yang akan dibuat. Nilai ini tidak boleh melebihi kapasitas total sistem file NAS.

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

  1. Buat aplikasi dan pasang sistem file NAS

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

Contoh berikut menunjukkan cara memasang sistem file NAS yang dibuat menggunakan CNFS ke path /data dalam kontainer.

Detail konfigurasi: Atur Volume Type ke Cloud Storage, pilih PVC NAS CNFS yang sesuai (misalnya, cnfs-nas-pvc) untuk Mount Source, dan masukkan /data untuk Container Path.

Konfigurasi penyimpanan bersama dan terisolasi

Setelah membuat sistem file NAS, Anda dapat mengonfigurasinya untuk penyimpanan bersama atau terisolasi sesuai kebutuhan aplikasi Anda.

Konfigurasi volume NAS bersama

Untuk berbagi data antar Pod, pasang direktori yang sama dari sistem file NAS ke beberapa Pod sebagai volume bersama.

  • Cara kerja: Metode ini menggunakan volume statis. path yang ditentukan dalam PersistentVolume (PV) adalah direktori persis yang dipasang oleh driver CSI. Saat beberapa Pod memasang PV ini menggunakan PersistentVolumeClaim (PVC) yang sama, semuanya mengakses direktori yang sama, sehingga memungkinkan berbagi data.

  • Konfigurasi utama: Di bagian volumes templat Pod workload Anda (.spec.template), atur parameter persistentVolumeClaim.claimName ke nama PVC yang sama.

1. Buat PV dan PVC yang mengarah ke direktori tertentu

Tampilkan 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 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

Tampilkan 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 bagian volumes di bawah.
          name: cnfs-nas-pvc
      volumes:
      # Definisikan volume bernama cnfs-nas-pvc.
      - name: cnfs-nas-pvc
        # Semua replika Pod mereferensikan PVC yang sama untuk mengaktifkan penyimpanan bersama.
        persistentVolumeClaim:
          claimName: cnfs-nas-static-pvc

3. Verifikasi hasil

  1. Periksa status pemasangan

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

    Output 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 untuk Deployment.

Konfigurasi volume NAS terisolasi

Untuk kasus penggunaan yang memerlukan isolasi data, seperti multi-tenancy, Anda dapat menyediakan setiap Pod atau kelompok Pod dengan direktori penyimpanan khusus.

  • Cara kerja: Metode ini menggunakan volume dinamis. Driver CSI secara otomatis membuat subdirektori khusus dengan nama yang sama seperti PV di bawah path yang ditentukan sebagai titik pemasangan. Karena setiap PVC terikat ke subdirektori terpisah, hal ini memastikan isolasi data.

  • Konfigurasi utama:

    • Di bagian parameters StorageClass Anda, pastikan volumeAs: subpath diatur. Pengaturan ini (yang merupakan default) membuat subdirektori khusus untuk setiap permintaan PVC.

    • Dalam definisi StatefulSet, gunakan bagian volumeClaimTemplates untuk secara otomatis membuat dan mengikat PVC unik untuk setiap Pod.

1. Buat StorageClass untuk pembuatan subdirektori dinamis

Tampilkan kode contoh

Referensikan CNFS yang ditentukan dalam StorageClass dan gunakan volumeAs: subpath agar driver CSI 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 mengaktifkan volume terisolasi.
  volumeAs: subpath
  # Referensikan CNFS yang telah dibuat.
  containerNetworkFileSystem: cnfs-nas-filesystem
  # Tentukan path root pada sistem file NAS untuk membuat subdirektori.
  # Driver CSI membuat subdirektori di bawah path ini dengan nama yang sama seperti PV yang dibuat otomatis.
  path: "/"
  archiveOnDelete: "false"
provisioner: nasplugin.csi.alibabacloud.com
# Menghapus subdirektori NAS yang sesuai secara otomatis saat PVC dihapus.
reclaimPolicy: Delete
allowVolumeExpansion: true

2. Buat StatefulSet contoh

Tampilkan kode contoh

Membuat dan memasang volume penyimpanan terisolasi secara dinamis untuk setiap Pod berdasarkan templat yang didefinisikan oleh StorageClass.

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 StorageClass yang telah dibuat sebelumnya.
      storageClassName: "cnfs-nas-sc" 
      resources:
        requests:
          # Nilai ini hanya untuk tujuan penjadwalan dan tidak mewakili kuota nyata. 
          # Kapasitas yang tersedia sebenarnya adalah kapasitas total sistem file NAS.
          storage: 50Gi  

3. Verifikasi hasil

  1. Periksa status pemasangan

    Periksa informasi pemasangan untuk Pod, misalnya cnfs-nas-sts-0.

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

    Output mengonfirmasi bahwa subdirektori pada sistem file NAS 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 untuk StatefulSet.

Rekomendasi produksi

  • Keamanan data

    • Enkripsi data: Saat membuat sistem file NAS baru, atur encryptType: SSE-KMS di bagian parameters objek CNFS. Hal ini mengaktifkan enkripsi sisi server dan meningkatkan keamanan data.

    • Proteksi data dan kebijakan pemulihan: reclaimPolicy untuk objek CNFS selalu Retain, yang berarti menghapus objek CNFS di Kubernetes tidak menghapus instans NAS backend. Namun, kebijakan pemulihan untuk PV ditentukan oleh StorageClass-nya. Untuk lingkungan produksi, atur kebijakan pemulihan ke Retain untuk mencegah kehilangan data yang tidak disengaja.

    • Keranjang daur ulang: Saat membuat sistem file NAS, aktifkan Keranjang daur ulang dengan mengatur enableTrashCan: "true" untuk mencegah penghapusan data yang tidak disengaja.

    • Penulisan konkuren: Saat beberapa Pod memasang volume penyimpanan bersama yang sama, hindari beberapa instans aplikasi menulis ke file yang sama di tingkat aplikasi. Hal ini mencegah korupsi file akibat penulisan konkuren.

  • Operasi dan manajemen

    • Isolasi performa: Volume penyimpanan terisolasi hanya menyediakan isolasi di tingkat data. Semua volume terisolasi berbagi IOPS dan throughput dari instans NAS backend yang sama. Untuk aplikasi inti dengan kebutuhan performa I/O ketat dan latensi stabil, sediakan sistem file NAS khusus.

    • Manajemen kapasitas: Atur allowVolumeExpansion: true di StorageClass Anda untuk mengizinkan ekspansi kuota direktori volume penyimpanan.

      Nilai requests.storage dalam PVC terutama digunakan untuk keputusan penjadwalan dan tidak menetapkan kuota keras pada seluruh sistem file NAS.
    • Monitoring dan peringatan: Gunakan Container Storage Monitoring untuk mengonfigurasi peringatan untuk metrik utama seperti pemanfaatan kapasitas, IOPS, dan throughput sistem file NAS Anda. Hal ini membantu Anda segera mengidentifikasi hambatan kapasitas atau performa.

  • Optimasi biaya

    • Pilih tipe penyimpanan yang tepat: Pilih tipe NAS berdasarkan kebutuhan biaya dan performa Anda. Untuk panduan, lihat Pilih tipe NAS. Misalnya, NAS Capacity adalah opsi berbiaya lebih rendah yang cocok untuk tugas yang tidak sensitif terhadap latensi seperti berbagi file atau pengarsipan.

    • Lepaskan resource segera: Setelah menghentikan aplikasi, lepaskan semua resource yang tidak digunakan. Juga, hapus sistem file NAS backend jika tidak lagi diperlukan untuk menghindari biaya tak terduga.

Referensi

Verifikasi penyimpanan bersama, isolasi data, dan penyimpanan persisten

Setelah sistem file NAS dipasang, verifikasi bahwa penyimpanan berperilaku sesuai harapan.

  • Verifikasi penyimpanan bersama dan persisten untuk deployment

    Langkah-langkah

    Penyimpanan bersama

    Penyimpanan persisten

    Untuk memverifikasi penyimpanan bersama, buat file di satu pod lalu periksa keberadaannya di pod lain.

    1. Lihat informasi pod untuk mendapatkan nama pod.

      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

      File muncul dalam output, yang mengonfirmasi bahwa data dibagikan antar pod.

      Penting

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

    Untuk memverifikasi penyimpanan persisten, buat ulang deployment dan periksa apakah data ada di pod baru.

    1. Picu restart bergulir deployment untuk membuat ulang pod-nya.

      kubectl rollout restart deploy cnfs-nas-deployment
    2. Lihat pod dan tunggu hingga 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

      File yang ditulis sebelumnya muncul dalam output, yang mengonfirmasi bahwa penyimpanan bersifat persisten.

  • Verifikasi isolasi data dan penyimpanan persisten untuk StatefulSet

    Langkah-langkah

    Setiap pod dalam StatefulSet memiliki PVC independen, yang memastikan isolasi data.

    Isolasi data

    Penyimpanan persisten

    Untuk memverifikasi isolasi data, buat file di satu pod dan pastikan file tersebut tidak ada di pod lain.

    1. Lihat informasi pod untuk mendapatkan nama pod.

      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 yang dapat diidentifikasi di salah satu pod. Contoh ini menggunakan pod bernama cnfs-nas-sts-0:

      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 tidak menunjukkan file yang dibuat di cnfs-nas-sts-0. Hal ini mengonfirmasi bahwa setiap pod StatefulSet menggunakan volume independen dan datanya terisolasi.

    Hapus pod tertentu, tunggu hingga pod tersebut dibuat ulang, lalu periksa apakah data ada di pod baru.

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

      kubectl delete pod cnfs-nas-sts-0
    2. Lihat pod dan tunggu hingga pod dengan nama yang sama mulai dan masuk ke 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

      File yang ditulis sebelumnya muncul dalam output, yang mengonfirmasi bahwa penyimpanan persisten berfungsi dengan benar.

      sts-0-data.txt

CNFS YAML

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

Bagian ini memberikan contoh menjalankan perintah kubectl get cnfs/cnfs-nas-filesystem -o yaml di Metode 2 untuk melihat YAML cnfs-nas-filesystem.

Contoh YAML

Detail

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

Detail

Parameter

Deskripsi

status

Status saat ini dari CNFS. Nilai yang mungkin adalah Pending, Creating, Initialization (membuat sistem file), Available, Unavailable (sementara tidak tersedia tetapi dapat pulih), Fatal (tidak tersedia dan tidak dapat pulih), dan Terminating.

conditions.lastProbeTime

Timestamp dari pemeriksaan kelangsungan hidup terakhir.

conditions.reason

Alasan dari status saat ini.

conditions.status

Status saat ini. Statusnya Ready jika resource tersedia, dan NotReady jika resource tidak tersedia.

fsAttributes.accessGroupName

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

fsAttributes.encryptType

Opsional. Menentukan metode enkripsi.

  • None: Menonaktifkan enkripsi.

  • SSE-KMS: Mengaktifkan enkripsi yang dikelola NAS. Kunci yang sepenuhnya dikelola oleh NAS digunakan untuk mengenkripsi setiap sistem file. Kunci ini dibuat dan dikelola oleh NAS di Key Management Service (KMS).

fsAttributes.enableTrashCan

Mengaktifkan Keranjang daur ulang untuk mencegah gangguan bisnis dan kehilangan data akibat penghapusan file yang tidak disengaja.

  • true: Mengaktifkan fitur ini.

  • false: Menonaktifkan fitur ini.

fsAttributes.filesystemId

ID sistem file.

fsAttributes.filesystemType

Tipe sistem file. Default-nya adalah NAS tujuan umum, ditentukan sebagai standard.

fsAttributes.protocolType

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

fsAttributes.regionId

Wilayah tempat CNFS berada.

fsAttributes.server

Alamat titik pemasangan NAS.

fsAttributes.storageType

Tipe penyimpanan. NAS tujuan umum mendukung tipe Performance, Capacity, dan Premium.

fsAttributes.vSwitchId

vSwitch yang digunakan oleh CNFS.

fsAttributes.vpcId

VPC tempat CNFS berada.

fsAttributes.zoneId

Zona ketersediaan tempat CNFS berada.

Pembersihan resource

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

  1. Hapus workload

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

    • Perintah contoh: kubectl delete deployment <NAMA-DEPLOYMENT-ANDA>

  2. Hapus PVC

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

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

      • Delete: Saat PVC dihapus, PV yang terikat juga dihapus. Data dan direktori di NAS backend akan ditangani berdasarkan pengaturan parameter archiveOnDelete di StorageClass.

        • "true" (default): Direktori atau file tidak benar-benar dihapus. Sebaliknya, namanya diubah menjadi archived-{pvName}.{timestamp}.

        • "false" : Data dihapus secara permanen. Operasi ini tidak dapat dikembalikan. Gunakan dengan hati-hati.

    • Perintah contoh: kubectl delete pvc <NAMA-PVC-ANDA>

  3. Hapus PV

    • Operasi: Hapus PV. Operasi ini terutama untuk PV statis atau PV yang berada dalam status Released setelah kebijakan Retain digunakan pada langkah sebelumnya.

      Tindakan ini hanya menghapus definisi resource dari Kubernetes. Tindakan ini tidak menghapus data di NAS backend.
    • Perintah contoh: kubectl delete pv <NAMA-PV-ANDA>

  4. Hapus definisi penyimpanan Kubernetes (Opsional)

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

      Tindakan ini hanya menghapus definisi resource dari Kubernetes. Tindakan ini tidak menghapus data di NAS backend.
    • Perintah contoh: kubectl delete sc <NAMA-STORAGECLASS-ANDA> dan kubectl delete cnfs <NAMA-CNFS-ANDA>

  5. Hapus sistem file NAS backend

    • Aksi: Lihat Hapus sistem file. Tindakan yang tidak dapat dikembalikan ini menghapus semua data di NAS secara permanen. Gunakan dengan sangat hati-hati. Sebelum melanjutkan, pastikan tidak ada layanan lain yang bergantung pada sistem file NAS ini.