All Products
Search
Document Center

Container Service for Kubernetes:Mengelola sistem file NAS dengan CNFS

Last Updated:Jun 17, 2026

Container Network File System (CNFS) memungkinkan Anda mengelola sistem file NAS sebagai resource native Kubernetes. Dengan CNFS, Anda dapat membuat, mengelola, dan menggunakan NAS secara deklaratif. CNFS menyediakan volume persisten yang sederhana dan efisien untuk beban kerja seperti situs web dan analitik data, serta mendukung berbagai skenario bisnis, termasuk berbagi data dan isolasi.

Prasyarat

  • Anda harus memiliki kluster ACK Pro managed versi 1.20 atau lebih baru. Jika perlu melakukan upgrade kluster, lihat Upgrade kluster secara manual.

    Jika Anda menggunakan kubectl untuk mengelola CNFS, kluster harus berada pada versi 1.20 atau lebih baru.
  • Komponen penyimpanan harus memenuhi persyaratan versi berikut. Jika perlu melakukan upgrade komponen, lihat Mengelola 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 NAS Capacity, NAS Performance, dan tipe Advanced yang didukung. NAS Extreme tidak didukung.

    • Setiap akun memiliki batas jumlah sistem file NAS yang dapat dibuat dalam satu wilayah.

    • Untuk mengenkripsi sistem file NAS dengan KMS, Anda harus mengaktifkan layanan KMS. Untuk informasi selengkapnya, lihat Aktifkan Key Management Service.

Membuat sistem file NAS

Buat dan sambungkan sistem file NAS

Sebelum memulai, pilih metode provisioning sistem file NAS untuk kluster Anda.

Metode

Deskripsi

Metode provisioning volume

Kasus Penggunaan

Metode 1: Membuat sistem file NAS secara otomatis

CNFS secara otomatis membuat dan mengelola sistem file NAS dengan konfigurasi yang telah ditentukan untuk pemasangan cepat.

dynamic volume

  • Validasi fitur cepat.

  • Ideal untuk skenario yang tidak memerlukan kontrol detail terhadap penyimpanan dasar. Metode ini menggunakan konfigurasi tetap, sehingga Anda tidak dapat menyesuaikan tipe penyimpanan, metode enkripsi, atau pengaturan Keranjang daur ulang.

Metode 2: Membuat sistem file NAS dengan parameter kustom

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

  • dynamic volume

  • static volume

Ideal untuk skenario yang memerlukan konfigurasi spesifik untuk performa, enkripsi, atau biaya, atau kontrol detail halus terhadap penyimpanan.

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

Mengintegrasikan sistem file NAS yang sudah ada ke dalam CNFS untuk pengelolaan terpusat.

  • dynamic volume

  • static volume

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

Metode 1: Membuat sistem file NAS secara otomatis

Gunakan Container Network File System (CNFS) untuk membuat sistem file NAS secara otomatis dengan konfigurasi default. CNFS membuat sistem file berdasarkan lingkungan kluster, dan Enkripsi dinonaktifkan secara default. Jika NAS Capacity tidak didukung di wilayah saat ini, CNFS secara otomatis membuat sistem file NAS Performance sebagai gantinya.

Setelah membuat resource CNFS dan StorageClass, beban kerja dapat meminta penyimpanan menggunakan Persistent Volume Claim (PVC). Ini akan membuat PersistentVolume (PV) secara dinamis pada sistem file NAS dan memasangnya ke Pod.

kubectl

1. Buat resource CNFS

Buat objek ContainerNetworkFileSystem tanpa 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
  # Satu-satunya nilai yang didukung adalah Retain. Instans NAS backend dipertahankan saat resource CNFS dihapus.
  reclaimPolicy: Retain
  parameters:
    # Untuk mengaktifkan enkripsi yang dikelola NAS, atur ke SSE-KMS.
    encryptType: SSE-KMS
    # Untuk mengaktifkan keranjang daur ulang, atur ke "true".
    enableTrashCan: "true"

Parameter

Parameter

Deskripsi

description

Deskripsi resource CNFS.

type

Tipe volume yang akan dibuat. Atur ke nas.

reclaimPolicy

Kebijakan reclaim. Hanya Retain yang didukung. Kebijakan ini mencegah kehilangan data dengan mempertahankan sistem file NAS backend saat Anda menghapus resource CNFS.

parameters.encryptType

Opsional. Menentukan metode enkripsi yang akan digunakan.

  • None: Menonaktifkan enkripsi.

  • SSE-KMS: Mengaktifkan enkripsi yang dikelola NAS. Setiap sistem file dienkripsi dengan kunci yang dibuat dan dikelola oleh Apsara File Storage NAS di Key Management Service (KMS).

parameters.enableTrashCan

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

  • true: Mengaktifkan fitur ini.

  • false: Menonaktifkan fitur ini.

  • Jalankan perintah kubectl get cnfs untuk melihat sistem file NAS.

  • Jalankan perintah 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 mengaitkan objek tersebut 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 subpath terpisah pada sistem file NAS untuk setiap PVC.
  volumeAs: subpath
  # Mengaitkan StorageClass dengan resource CNFS yang telah ditentukan sebelumnya.
  containerNetworkFileSystem: cnfs-nas-filesystem
  path: "/"
# Atur ke Retain untuk mempertahankan data subpath backend saat PVC dihapus.
reclaimPolicy: Retain
# Mengizinkan ekspansi volume.
allowVolumeExpansion: true
mountOptions:
  - nolock,tcp,noresvport
  - vers=3

3. Buat PersistentVolumeClaim (PVC)

Aplikasi meminta volume dengan menggunakan PVC yang mereferensikan StorageClass sebagai templat konfigurasi.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: alibabacloud-cnfs-nas
  resources:
    requests:
      # Jika allowVolumeExpansion bernilai true, 'storage' menentukan kuota untuk subpath 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 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: Menggunakan templat volumeClaimTemplates untuk secara otomatis membuat PVC terpisah untuk setiap replika Pod. Setiap PVC dipasang ke subpath khusus pada sistem file NAS backend untuk memastikan 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, 'storage' menentukan kuota untuk subpath PVC ini. Dalam contoh ini, direktori memiliki kuota penulisan 50 GiB.
              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.

    • Pilih sistem file NAS.

    • Pilih Create Default NAS File System.

    Setelah resource dibuat, klik namanya di daftar CNFS untuk melihat detail. Kemudian, klik ID NAS untuk membuka halaman detail sistem file NAS yang dibuat. Klik tab Mount Targets untuk 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 konfigurasikan StorageClass.

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

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

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

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

      • Retain (default): Saat Anda menghapus PVC, PV dan file dalam sistem file NAS dipertahankan. Hapus secara manual jika tidak lagi diperlukan.

      • Delete: Kebijakan ini memerlukan archiveOnDelete. Untuk volume yang diprovisioning secara dinamis, PV dihapus saat Anda menghapus PVC terkait. Namun, volume yang diprovisioning secara statis tidak mendukung archiveOnDelete. Bahkan jika Anda mengatur kebijakan reclaim ke Delete, menghapus PVC tidak menghapus PV maupun file dalam sistem file NAS.

        Untuk mengonfigurasi archiveOnDelete, lihat Gunakan volume NAS yang diprovisioning 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 konfigurasikan PVC.

    • Allocation Mode: Metode provisioning volume.

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

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

    • Access Mode: Default-nya adalah ReadWriteMany. Anda juga dapat memilih ReadWriteOnce atau ReadOnlyMany.

4. Buat aplikasi dan pasang volume NAS

Saat Anda membuat Deployment atau membuat StatefulSet, konfigurasikan PVC agar dipasang ke kontainer di bagian Volumes pada halaman Container.

Contoh ini memasang sistem file NAS yang dibuat oleh CNFS ke path /data dalam kontainer.

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: Membuat sistem file NAS kustom

Gunakan CNFS untuk membuat sistem file NAS dengan parameter kustom.

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

  2. Ekspos sistem file tersebut ke aplikasi dalam kluster dengan membuat PV statis atau StorageClass dinamis.

kubectl

1. Buat sistem file NAS kustom

Buat objek ContainerNetworkFileSystem dan tentukan parameter untuk sistem file 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 yang akan dibuat. Atur ke nas.

reclaimPolicy

Kebijakan reclaim. Hanya Retain yang didukung. Kebijakan ini mencegah kehilangan data dengan mempertahankan sistem file NAS backend saat Anda menghapus resource CNFS.

parameters.filesystemType

Tipe sistem file. Nilai default-nya adalah standard, yang menunjukkan sistem file NAS tujuan umum.

parameters.storageType

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

parameters.protocolType

Protokol transfer file. Hanya protokol NFS yang didukung.

parameters.encryptType

Opsional. Menentukan metode enkripsi yang akan digunakan.

  • None: Menonaktifkan enkripsi.

  • SSE-KMS: Mengaktifkan enkripsi yang dikelola NAS. Setiap sistem file dienkripsi dengan kunci yang dibuat dan dikelola oleh Apsara File Storage NAS di Key Management Service (KMS).

parameters.enableTrashCan

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

  • true: Mengaktifkan fitur ini.

  • false: Menonaktifkan fitur ini.

parameters.trashCanReservedDays

Jumlah hari penyimpanan file dalam keranjang daur ulang. Default-nya adalah 7 hari. Dalam contoh ini, trashCanReservedDays: 5 menyimpan file selama 5 hari.

parameters.vSwitchId

ID vSwitch yang akan digunakan oleh sistem file NAS baru.

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

  • Jalankan perintah kubectl get cnfs untuk melihat sistem file NAS.

  • Jalankan perintah 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 PV atau StorageClass

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

  • static PV: Definisikan secara manual PV yang memetakan ke direktori yang ada pada sistem file NAS. Gunakan metode ini saat aplikasi perlu mengakses data yang sudah ada.

  • dynamic StorageClass: Buat templat StorageClass agar aplikasi dapat secara otomatis provisioning subpath baru yang terisolasi 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:
      # Menentukan resource CNFS yang akan digunakan.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # Path dalam CNFS yang akan dipasang.
      path: "/"
  mountOptions:
    - nolock,tcp,noresvport
    - vers=3
Untuk informasi selengkapnya tentang parameter PV, lihat Gunakan volume NAS statis.

StorageClass

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

3. Buat PVC

Buat PVC yang menggunakan static PV atau StorageClass yang telah Anda buat.

Static PV

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

Dynamic Provisioning

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 volume NAS

Pasang PVC sebagai volume dalam 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 Buat sistem file NAS tujuan umum di 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, dan konfigurasikan PV sesuai petunjuk.

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

    • Capacity: Deklarasi kapasitas untuk PV. Deklarasi ini hanya digunakan untuk pencocokan PVC dan tidak membatasi kapasitas yang tersedia sebenarnya. Penyimpanan aplikasi Anda hanya dibatasi oleh kapasitas total sistem file NAS.

      Kapasitas sebenarnya dari sistem file NAS ditentukan oleh spesifikasinya. Untuk informasi selengkapnya, lihat NAS tujuan umum.
    • Enable CNFS: Pilih opsi ini untuk menggunakan CNFS.

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

    • Advanced Options (Optional):

      • Mount Path: Subpath sistem file NAS yang akan dipasang. Jika dibiarkan kosong, direktori root dipasang secara default. Untuk sistem file NAS tujuan umum, direktori root adalah /.

        Jika direktori tidak ada pada sistem file NAS, direktori tersebut akan dibuat dan dipasang secara otomatis.
      • Reclaim Policy: CNFS hanya mendukung kebijakan 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 konfigurasikan StorageClass.

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

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

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

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

      • Retain (default): Saat Anda menghapus PVC, PV dan file dalam sistem file NAS dipertahankan. Hapus secara manual jika tidak lagi diperlukan.

      • Delete: Kebijakan ini memerlukan archiveOnDelete. Untuk volume yang diprovisioning secara dinamis, PV dihapus saat Anda menghapus PVC terkait. Namun, volume yang diprovisioning secara statis tidak mendukung archiveOnDelete. Bahkan jika Anda mengatur kebijakan reclaim ke Delete, menghapus PVC tidak menghapus PV maupun file dalam sistem file NAS.

        Untuk mengonfigurasi archiveOnDelete, lihat Gunakan volume NAS yang diprovisioning 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 konfigurasikan PVC.

    • Allocation Mode: Metode provisioning volume.

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

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

    • Access Mode: Default-nya adalah ReadWriteMany. Anda juga dapat memilih ReadWriteOnce atau ReadOnlyMany.

  1. Buat aplikasi dan pasang volume NAS

Saat Anda membuat Deployment atau membuat StatefulSet, konfigurasikan PVC agar dipasang ke kontainer di bagian Volumes pada halaman Container.

Contoh ini memasang sistem file NAS yang dibuat oleh CNFS ke path /data dalam kontainer.

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: Mengelola dan menggunakan sistem file NAS yang sudah ada

Gunakan CNFS untuk mengelola sistem file NAS Apsara File Storage yang sudah ada dan menghubungkannya ke kluster, sehingga aplikasi dapat memasang dan menggunakannya.

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 singkat sistem file.

type

Tipe penyimpanan yang akan dibuat.

reclaimPolicy

Kebijakan reclaim. Hanya Retain yang didukung. Kebijakan ini mencegah kehilangan data dengan mempertahankan sistem file NAS backend saat Anda menghapus resource CNFS.

parameters.server

Alamat titik pemasangan NAS.

  • Jalankan perintah kubectl get cnfs untuk melihat sistem file NAS.

  • Jalankan perintah 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 PV atau StorageClass

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

  • static PV: Definisikan secara manual PV yang memetakan ke direktori yang ada pada sistem file NAS. Gunakan metode ini saat aplikasi perlu mengakses data yang sudah ada.

  • dynamic StorageClass: Buat templat StorageClass agar aplikasi dapat secara otomatis provisioning subpath baru yang terisolasi 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:
      # Menentukan resource CNFS yang akan digunakan.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # Path dalam CNFS yang akan dipasang.
      path: "/"
  mountOptions:
    - nolock,tcp,noresvport
    - vers=3
Untuk informasi selengkapnya tentang parameter PV, lihat Gunakan volume NAS statis.

StorageClass

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

3. Buat PVC

Buat PVC yang menggunakan static PV atau StorageClass yang telah Anda buat.

Static PV

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

Dynamic Provisioning

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 volume NAS

Pasang PVC sebagai volume dalam 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 berdasarkan petunjuk di layar.

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

    • Pilih sistem file NAS Apsara File Storage.

    • 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 mengoptimalkan kinerja akses data dengan akselerasi pemasangan elastis. Untuk informasi selengkapnya, lihat Gunakan klien EFC untuk memasang sistem file NAS melalui CNFS.

  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, dan konfigurasikan PV sesuai petunjuk.

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

    • Capacity: Deklarasi kapasitas untuk PV. Deklarasi ini hanya digunakan untuk pencocokan PVC dan tidak membatasi kapasitas yang tersedia sebenarnya. Penyimpanan aplikasi Anda hanya dibatasi oleh kapasitas total sistem file NAS.

      Kapasitas sebenarnya dari sistem file NAS ditentukan oleh spesifikasinya. Untuk informasi selengkapnya, lihat NAS tujuan umum.
    • Enable CNFS: Pilih opsi ini untuk menggunakan CNFS.

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

    • Advanced Options (Optional):

      • Mount Path: Subpath sistem file NAS yang akan dipasang. Jika dibiarkan kosong, direktori root dipasang secara default. Untuk sistem file NAS tujuan umum, direktori root adalah /.

        Jika direktori tidak ada pada sistem file NAS, direktori tersebut akan dibuat dan dipasang secara otomatis.
      • Reclaim Policy: CNFS hanya mendukung kebijakan 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 konfigurasikan StorageClass.

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

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

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

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

      • Retain (default): Saat Anda menghapus PVC, PV dan file dalam sistem file NAS dipertahankan. Hapus secara manual jika tidak lagi diperlukan.

      • Delete: Kebijakan ini memerlukan archiveOnDelete. Untuk volume yang diprovisioning secara dinamis, PV dihapus saat Anda menghapus PVC terkait. Namun, volume yang diprovisioning secara statis tidak mendukung archiveOnDelete. Bahkan jika Anda mengatur kebijakan reclaim ke Delete, menghapus PVC tidak menghapus PV maupun file dalam sistem file NAS.

        Untuk mengonfigurasi archiveOnDelete, lihat Gunakan volume NAS yang diprovisioning 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 konfigurasikan PVC.

    • Allocation Mode: Metode provisioning volume.

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

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

    • Access Mode: Default-nya adalah ReadWriteMany. Anda juga dapat memilih ReadWriteOnce atau ReadOnlyMany.

  1. Buat aplikasi dan pasang volume NAS

Saat Anda membuat Deployment atau membuat StatefulSet, konfigurasikan PVC agar dipasang ke kontainer di bagian Volumes pada halaman Container.

Contoh ini memasang sistem file NAS yang dibuat oleh CNFS ke path /data dalam kontainer.

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.

Skenario aplikasi: Penyimpanan bersama dan terisolasi

Setelah membuat atau menambahkan sistem file NAS, konfigurasikan untuk berbagi data atau isolasi.

Konfigurasikan volume NAS bersama

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

  • Mekanisme inti: Hal ini dicapai dengan menggunakan volume statis. Dalam PersistentVolume (PV), path yang dideklarasikan identik dengan path akhir yang dipasang oleh Container Storage Interface (CSI). Oleh karena itu, ketika beberapa Pod memasang PV statis ini dengan menggunakan PersistentVolumeClaim (PVC) yang sama, semuanya dapat mengakses direktori penyimpanan yang sama, sehingga memungkinkan berbagi data.

  • Konfigurasi utama: Dalam templat Pod (.spec.template) workload, di bawah field volumes, atur parameter persistentVolumeClaim.claimName ke nama PVC yang sama.

1. Buat PersistentVolume dan PersistentVolumeClaim yang mereferensikan direktori tertentu

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 PersistentVolume.
  volumeName: cnfs-nas-static-pv
status:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 50Gi

2. Buat Deployment contoh

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 PersistentVolumeClaim yang sama 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 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 penyimpanan persisten untuk Deployment.

Konfigurasikan volume NAS terisolasi

Untuk skenario yang memerlukan isolasi data, seperti multi-tenancy, sediakan direktori penyimpanan independen untuk setiap Pod atau kelompok Pod.

  • Mekanisme inti: Hal ini dicapai dengan menggunakan volume dinamis. Dalam StorageClass, CSI secara otomatis membuat sub-direktori terpisah dengan nama yang sama seperti PV dalam path yang dideklarasikan untuk berfungsi sebagai titik pemasangan. Akibatnya, setiap PVC terikat ke direktori penyimpanan terpisah, yang menyediakan isolasi data.

  • Konfigurasi utama:

    • Dalam StorageClass yang terkait dengan StatefulSet, pengaturan volumeAs: subpath (nilai default) dalam parameters membuat subdirektori independen untuk setiap permintaan PVC.

    • Dalam StatefulSet, Anda dapat mendefinisikan volumeClaimTemplates untuk secara otomatis membuat dan mengikat PVC independen untuk setiap Pod.

1. Buat StorageClass yang mendukung sub-direktori dinamis

Kode contoh

Objek PV mereferensikan CNFS yang ditentukan dan menggunakan volumeAs: subpath untuk menginstruksikan CSI membuat sub-direktori terisolasi secara dinamis untuk setiap permintaan PVC.

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

2. Buat StatefulSet contoh

Kode contoh

Buat dan pasang volume terisolasi secara dinamis untuk setiap Pod berdasarkan templat yang ditentukan dalam 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
  # volumeClaimTemplates secara otomatis membuat PersistentVolumeClaim untuk setiap Pod berdasarkan templat berikut.
  volumeClaimTemplates:
  - metadata:
      name: pvc
    spec:
      accessModes: [ "ReadWriteOnce" ]
      # Referensikan StorageClass 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 kapasitas total sistem file NAS.
          storage: 50Gi  

3. Verifikasi hasil

  1. Periksa status pemasangan

    Periksa status pemasangan untuk Pod, seperti cnfs-nas-sts-0.

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

    Output yang diharapkan menunjukkan bahwa sub-direktori NAS telah 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 untuk StatefulSet.

Rekomendasi untuk lingkungan produksi

  • Keamanan data

    • Enkripsi data: Saat membuat sistem file NAS, atur encryptType: SSE-KMS dalam parameters CNFS untuk mengaktifkan Enkripsi sisi server dan meningkatkan keamanan data.

    • Proteksi data dan kebijakan reclaim: reclaimPolicy untuk resource CNFS tetap Retain. Artinya, menghapus objek CNFS di Kubernetes tidak menghapus instans NAS backend. Namun, kebijakan reclaim untuk volume persisten ditentukan oleh StorageClass-nya. Untuk lingkungan produksi, atur kebijakan reclaim di StorageClass ke Retain untuk mencegah kehilangan data yang tidak disengaja.

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

    • Penulisan konkuren: Saat beberapa Pod memasang volume penyimpanan bersama yang sama, kelola penulisan konkuren di tingkat aplikasi untuk mencegah korupsi file.

  • Manajemen operasi

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

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

      Nilai requests.storage dalam klaim volume persisten terutama digunakan untuk keputusan penjadwalan dan tidak mewakili 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. Hal ini membantu Anda segera mengidentifikasi hambatan kapasitas atau performa.

  • Optimasi biaya

    • Tipe penyimpanan: Lihat Pilih tipe penyimpanan NAS untuk memilih tipe NAS yang sesuai berdasarkan sensitivitas biaya dan performa workload Anda. Misalnya, NAS Capacity lebih murah dan cocok untuk berbagi file atau workload arsip yang tidak sensitif terhadap latensi.

    • Rilis resource segera: Setelah aplikasi dihentikan, bersihkan semua resource yang tidak digunakan. Juga, pastikan apakah akan menghapus sistem file NAS backend untuk menghindari biaya tak terduga.

Informasi referensi

Verifikasi penyimpanan bersama, isolasi data, dan penyimpanan persisten

Setelah sistem file Network Attached Storage (NAS) dipasang, Anda dapat memverifikasi bahwa sistem tersebut berperilaku sesuai harapan.

  • Verifikasi penyimpanan bersama dan penyimpanan persisten untuk deployment

    Langkah-langkah

    Penyimpanan bersama

    Penyimpanan persisten

    Buat file di satu pod, lalu periksa file tersebut 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

      File yang baru dibuat terlihat, menunjukkan bahwa data dibagikan antar pod.

      Penting

      Saat beberapa pod menulis ke volume penyimpanan bersama, Container Network File System (CNFS) tidak dapat menjamin konsistensi data. Untuk mencegah korupsi file, hindari penulisan konkuren ke file yang sama dalam aplikasi Anda.

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

    1. Mulai ulang deployment untuk memicu pembuatan ulang pod.

      kubectl rollout restart deploy cnfs-nas-deployment
    2. Daftar pod dan tunggu pod baru mulai serta memasuki 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. Periksa apakah file yang dibuat sebelumnya ada di pod baru. 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 terlihat, menunjukkan bahwa penyimpanan bersifat persisten.

  • Verifikasi isolasi data dan penyimpanan persisten untuk StatefulSet

    Langkah-langkah

    Setiap pod dalam StatefulSet memiliki PersistentVolumeClaim-nya sendiri, yang menjaga 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. 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 ini menggunakan pod bernama cnfs-nas-sts-0 untuk membuat file yang dapat diidentifikasi:

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

    Hapus pod dan, setelah dibuat ulang, periksa apakah datanya tetap ada.

    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 mulai serta memasuki 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. Periksa apakah file yang dibuat sebelumnya ada di pod baru.

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

      Output menunjukkan file yang ditulis sebelumnya, 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 Container Network File System (CNFS).

Contoh berikut menunjukkan YAML untuk cnfs-nas-filesystem. Output ini dihasilkan dengan menjalankan perintah kubectl get cnfs/cnfs-nas-filesystem -o yaml, seperti yang dijelaskan dalam Metode 2.

Contoh YAML

Kode

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 objek CNFS. Nilai yang mungkin termasuk Pending, Creating, Initialization (membuat sistem file), Available, Unavailable (sementara tidak tersedia tetapi dapat dipulihkan), Fatal (tidak tersedia dan tidak dapat dipulihkan), dan Terminating.

conditions.lastProbeTime

Waktu terakhir resource diproses untuk statusnya.

conditions.reason

Alasan untuk status saat ini.

conditions.status

Menunjukkan apakah resource siap. Nilai yang mungkin adalah Ready dan NotReady.

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 yang akan digunakan.

  • None: Menonaktifkan enkripsi.

  • SSE-KMS: Mengaktifkan enkripsi yang dikelola NAS. Setiap sistem file dienkripsi dengan kunci yang dibuat dan dikelola oleh Apsara File Storage NAS di Key Management Service (KMS).

fsAttributes.enableTrashCan

Menentukan apakah akan mengaktifkan keranjang daur ulang untuk mencegah gangguan bisnis atau 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. Nilai default-nya adalah standard, yang menunjukkan sistem file NAS tujuan umum.

fsAttributes.protocolType

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. NAS tujuan umum mendukung 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 digunakan.

  1. Hapus workload

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

    • Perintah contoh: kubectl delete deployment <nama-deployment-anda>

  2. Hapus PersistentVolumeClaims

    • Aksi: Hapus PersistentVolumeClaims yang terkait dengan aplikasi. Nasib PersistentVolume yang terikat bergantung pada reclaimPolicy-nya.

      • Retain (Direkomendasikan): Setelah PersistentVolumeClaim dihapus, data dan direktori pada sistem file NAS backend dipertahankan.

      • Delete: Setelah PersistentVolumeClaim dihapus, PersistentVolume yang terikat juga dihapus. Parameter archiveOnDelete dalam StorageClass kemudian menentukan bagaimana data dan direktori pada sistem file NAS backend diperlakukan.

        • "true" (default): Direktori dan isinya tidak dihapus tetapi diarsipkan dengan mengganti namanya menjadi archived-{pvName}.{timestamp}.

        • "false" : Data dihapus secara permanen. Tindakan ini tidak dapat dikembalikan.

    • Perintah contoh: kubectl delete pvc <nama-pvc-anda>

  3. Hapus PersistentVolumes

    • Aksi: Hapus PersistentVolume. Langkah ini terutama berlaku untuk PersistentVolumes statis atau PersistentVolumes yang memasuki status Released karena reclaimPolicy-nya adalah Retain.

      Tindakan ini hanya menghapus definisi resource dari Kubernetes dan tidak menghapus data 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 dan tidak menghapus data 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 ini menghapus semua data pada sistem file NAS secara permanen dan tidak dapat dikembalikan. Lakukan dengan hati-hati. Sebelum melakukan tindakan ini, pastikan tidak ada workload yang bergantung pada sistem file NAS ini.