All Products
Search
Document Center

Container Service for Kubernetes:Gunakan volume disk yang disediakan secara dinamis untuk penyimpanan persisten

Last Updated:Mar 03, 2026

Penyediaan volume secara dinamis secara otomatis membuat dan memasang disk independen untuk setiap replika aplikasi. Pendekatan ini cocok untuk database, middleware, dan workload lain yang memerlukan I/O tinggi serta latensi rendah, sekaligus menyederhanakan manajemen siklus hidup penyimpanan.

Cara kerja

Penyediaan disk secara dinamis dengan StatefulSet mengikuti tiga langkah:

  1. Definisikan templat. Buat StorageClass baru atau gunakan yang default. Templat ini menentukan parameter seperti tipe disk, tingkat performa, dan kebijakan reclaim.

  2. Deklarasikan kebutuhan penyimpanan. Definisikan volumeClaimTemplates dalam StatefulSet dan referensikan StorageClass tersebut. Ini mendeklarasikan spesifikasi PVC yang digunakan setiap pod, seperti kapasitas penyimpanan dan mode akses.

  3. Pembuatan dan pemasangan volume otomatis. Saat StatefulSet membuat pod, sistem menghasilkan PVC unik untuk pod tersebut berdasarkan templat. Komponen Container Storage Interface (CSI) membuat persistent volume (PV) berdasarkan aturan StorageClass, mengikat PV ke PVC, lalu memasang disk ke pod.

Lingkup dan batasan

  • Batasan zona: Semua tipe disk kecuali regional Enterprise SSD (ESSD) tidak dapat dipasang lintas zona. Disk tersebut hanya dapat dipasang ke pod dalam zona yang sama.

  • Batasan keluarga instans: Beberapa tipe disk hanya dapat disambungkan ke keluarga instans tertentu.

  • Persyaratan komponen CSI: Komponen csi-plugin dan csi-provisioner harus diinstal. > Catatan: Komponen CSI diinstal secara default. Pastikan Anda tidak menguninstall-nya secara manual. Periksa status instalasi di halaman Add-ons. Untuk pengalaman terbaik, upgrade komponen CSI ke versi terbaru.

  • Persyaratan node virtual: Untuk menggunakan disk pada node virtual, versi kluster dan kube-scheduler Anda harus memenuhi persyaratan berikut:

    Versi kluster

    Versi kube-scheduler

    1.28 atau lebih baru

    6.9.3 atau lebih baru

    1.26

    6.8.7

    1.24

    6.4.7

    1.22

    6.4.5

Pilih StorageClass

ACK menyediakan beberapa StorageClass default. StorageClass tidak dapat diubah setelah dibuat. Jika nilai default tidak memenuhi kebutuhan Anda, buat yang baru. Lihat Buat StorageClass secara manual.

StorageClass default

Pilih StorageClass default dan referensikan namanya di field storageClassName aplikasi Anda.

Nama StorageClass

Tipe disk yang dibuat secara dinamis

alicloud-disk-topology-alltype (Direkomendasikan)

Menjadwalkan pod sebelum membuat disk untuk mencegah kegagalan pemasangan akibat ketidaksesuaian zona (volumeBindingMode: WaitForFirstConsumer). Sistem mencoba membuat disk dalam urutan ESSD, SSD standar, dan ultra disk, berdasarkan zona dan tipe instans node tempat pod dijadwalkan, serta ketersediaan inventaris disk. Secara default, sistem memprioritaskan pembuatan ESSD PL1 dengan kapasitas minimum 20 GiB.

alicloud-disk-essd

Enterprise SSD (ESSD). Tingkat performa default adalah PL1, dan kapasitas disk minimum adalah 20 GiB.

Penting

ESSD di CloudBox hanya mendukung tingkat performa PL0. Anda harus membuat StorageClass secara manual dan menentukan performanceLevel sebagai PL0.

alicloud-disk-ssd

SSD standar. Kapasitas disk minimum adalah 20 GiB.

alicloud-disk-efficiency

Ultra disk. Kapasitas disk minimum adalah 20 GiB.

Jalankan kubectl describe sc <storageclass-name> untuk melihat konfigurasi detail StorageClass.

Buat StorageClass secara manual

kubectl

  1. Buat file bernama disk-sc.yaml. Contoh berikut menunjukkan StorageClass yang menggunakan volumeBindingMode: WaitForFirstConsumer untuk menunda pengikatan PV. Parameter StorageClass > Catatan: Jika Anda menjadwalkan pod ke node virtual menggunakan metode penjadwalan tertentu atau menambahkan Anotasi tertentu, Anda tidak dapat menggunakan StorageClass bertipe WaitForFirstConsumer. Untuk informasi selengkapnya, lihat Apa yang harus saya lakukan jika PVC terjebak dalam status Pending saat pod dengan disk terpasang dijadwalkan ke node virtual?

    Parameter

    Deskripsi

    provisioner

    Tipe driver. Wajib diisi. Atur ke diskplugin.csi.alibabacloud.com untuk plugin CSI disk Alibaba Cloud.

    parameters.type

    Tipe disk. Wajib diisi. Nilai yang valid:

    Anda dapat menentukan kombinasi nilai apa pun, misalnya type: cloud_ssd,cloud_essd,cloud_auto. Sistem akan mencoba membuat disk sesuai urutan yang ditentukan. Tipe disk akhir bergantung pada faktor seperti instans node dan tipe disk yang didukung di zona tersebut.

    parameters.resourceGroupId

    Kelompok sumber daya tempat disk berada. Default: "".

    parameters.regionId

    Wilayah tempat disk berada. Harus sesuai dengan wilayah kluster.

    parameters.fstype

    Tipe sistem file. Nilai yang valid: ext4 (default) dan xfs.

    parameters.mkfsOptions

    Parameter untuk memformat disk. Contoh: mkfsOptions: "-O project,quota".

    parameters.diskTags

    Tag untuk disk. Contoh: diskTags: "a:b,b:c". Anda juga dapat menentukan tag dalam format diskTags/a: b. Memerlukan CSI v1.30.3 atau lebih baru.

    parameters.encrypted

    Apakah disk dienkripsi. Default: false (tidak dienkripsi).

    parameters.performanceLevel

    Tingkat performa ESSD. Nilai yang valid: PL0, PL1 (default), PL2, PL3. Saat digunakan dengan CloudBox, atur ke PL0.

    parameters.volumeExpandAutoSnapshot [Deprecated]

    Deprecated sejak CSI v1.31.4.

    parameters.provisionedIops

    Performa yang disediakan (IOPS) untuk disk ESSD AutoPL.

    parameters.burstingEnabled

    Apakah fitur Burst (performance burst) diaktifkan untuk disk ESSD AutoPL. Default: false.

    parameters.multiAttach

    Apakah fitur multi-attach disk diaktifkan. Default: false.

    volumeBindingMode

    Mode pengikatan. Nilai yang valid:

    • Immediate (default): Membuat disk sebelum membuat pod.

    • WaitForFirstConsumer: Menunda pengikatan. Pod dijadwalkan terlebih dahulu, lalu disk dibuat di zona yang sama dengan pod.

    Dalam skenario multi-zona, gunakan WaitForFirstConsumer untuk mencegah kegagalan pemasangan akibat disk dan node ECS berada di zona berbeda.

    reclaimPolicy

    Kebijakan reclaim. Nilai yang valid:

    • Delete (default): Saat PVC dihapus, PV dan disk juga dihapus.

    • Retain: Saat PVC dihapus, PV dan data disk tidak dihapus. Anda harus menghapusnya secara manual.

    Jika keamanan data menjadi prioritas, gunakan Retain untuk mencegah penghapusan data secara tidak sengaja.

    allowVolumeExpansion

    Atur ke true untuk mengizinkan ekspansi volume disk online.

    allowedTopologies

    Membatasi pembuatan disk ke domain topologi tertentu.

    • key: Label domain topologi. Nilai yang didukung:

      • topology.diskplugin.csi.alibabacloud.com/zone: Kunci topologi khusus yang disediakan oleh plugin CSI Alibaba Cloud.

      • alibabacloud.com/ecs-instance-id: Gunakan ini untuk menentukan node saat menggunakan disk elastis sementara.

    • values: Daftar ID zona atau node.

       apiVersion: storage.k8s.io/v1
       kind: StorageClass
       metadata:
         # Nama StorageClass
         name: alicloud-disk-wait-for-first-consumer
       # Tipe driver. Nilai ini tetap saat menggunakan plugin CSI disk Alibaba Cloud.
       provisioner: diskplugin.csi.alibabacloud.com
       parameters:
         # Tipe disk. Sistem memilih tipe berdasarkan prioritas.
         type: cloud_auto,cloud_essd,cloud_ssd
         # Tipe sistem file
         fstype: ext4
         diskTags: "a:b,b:c"
         encrypted: "false"
         # Tingkat performa ESSD
         performanceLevel: PL1
         provisionedIops: "40000"
         burstingEnabled: "false"
       # Mode pengikatan. Gunakan WaitForFirstConsumer dalam skenario multi-zona.
       volumeBindingMode: WaitForFirstConsumer
       # Kebijakan reclaim
       reclaimPolicy: Retain
       # Menentukan apakah ekspansi volume diizinkan
       allowVolumeExpansion: true
       # Batasan topologi: Membatasi pembuatan disk ke zona tertentu
       allowedTopologies:
       - matchLabelExpressions:
         - key: topology.diskplugin.csi.alibabacloud.com/zone
           values:
           # Ganti dengan zona aktual Anda
           - cn-hangzhou-i
           - cn-hangzhou-k
  2. Buat StorageClass:

       kubectl create -f disk-sc.yaml
  3. Lihat StorageClass: Output menunjukkan bahwa StorageClass dibuat dalam mode pengikatan WaitForFirstConsumer:

       kubectl get sc
       NAME                                    PROVISIONER                       RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
       alicloud-disk-wait-for-first-consumer   diskplugin.csi.alibabacloud.com   Retain          WaitForFirstConsumer   true                   10s

Console

  1. Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Storage > StorageClasses.

  2. Klik Create, pilih Cloud Disk sebagai tipe PV, atur parameter, lalu klik OK. > Catatan: Jika Anda menjadwalkan pod ke node virtual menggunakan metode penjadwalan tertentu atau menambahkan Anotasi tertentu, Anda tidak dapat menggunakan StorageClass bertipe WaitForFirstConsumer. Untuk informasi selengkapnya, lihat Apa yang harus saya lakukan jika PVC terjebak dalam status Pending saat pod dengan disk terpasang dijadwalkan ke node virtual? Setelah StorageClass dibuat, Anda dapat melihatnya di halaman StorageClasses.

    Parameter

    Deskripsi

    Parameters

    Parameter default: type. Tipe disk. Wajib diisi. Nilai yang valid:

    Anda dapat menentukan kombinasi nilai apa pun, misalnya type: cloud_ssd,cloud_essd,cloud_auto. Sistem membuat disk sesuai urutan yang ditentukan. Tipe disk akhir bergantung pada faktor seperti instans node dan tipe disk yang didukung di zona tersebut.

    Parameter opsional:

    • resourceGroupId: Kelompok sumber daya tempat disk berada. Default: "".

    • regionId: Wilayah tempat disk berada. Harus sesuai dengan wilayah kluster.

    • fstype: Tipe sistem file. Nilai yang valid: ext4 (default) dan xfs.

    • mkfsOptions: Parameter untuk memformat disk. Contoh: mkfsOptions: "-O project,quota".

    • diskTags: Tag untuk disk. Contoh: diskTags: "a:b,b:c". Juga mendukung format diskTags/a: b. Memerlukan CSI v1.30.3 atau lebih baru.

    • encrypted: Apakah disk dienkripsi. Default: false.

    • performanceLevel: Tingkat performa ESSD. Nilai yang valid: PL0, PL1 (default), PL2, PL3. Saat digunakan dengan CloudBox, atur ke PL0.

    • provisionedIops: Performa yang disediakan (IOPS) untuk disk ESSD AutoPL.

    • burstingEnabled: Apakah fitur Burst (performance burst) diaktifkan untuk disk ESSD AutoPL. Default: false.

    • multiAttach: Apakah fitur multi-attach disk diaktifkan. Default: false.

    Reclaim Policy

    Kebijakan reclaim. Nilai yang valid:

    • Delete (default): Saat PVC dihapus, PV dan disk juga dihapus.

    • Retain: Saat PVC dihapus, PV dan data disk tidak dihapus. Anda harus menghapusnya secara manual.

    Jika keamanan data menjadi prioritas, gunakan Retain untuk mencegah penghapusan data secara tidak sengaja.

    Binding Mode

    Mode pengikatan. Nilai yang valid:

    • Immediate (default): Membuat disk sebelum membuat pod.

    • WaitForFirstConsumer: Menunda pengikatan. Pod dijadwalkan terlebih dahulu, lalu disk dibuat di zona yang sama dengan pod.

    Dalam skenario multi-zona, gunakan WaitForFirstConsumer untuk mencegah kegagalan pemasangan akibat disk dan node ECS berada di zona berbeda.

Pasang disk ke StatefulSet

Gunakan StatefulSet saat setiap replika pod memerlukan disk independennya sendiri.

Penting

Disk merupakan penyimpanan non-shared. Jika multi-attach tidak diaktifkan, disk hanya dapat dipasang ke satu pod dalam satu waktu. Berbagi PVC dalam deployment multi-replika menyebabkan pod baru gagal karena tidak dapat memasang disk yang sedang digunakan oleh pod yang ada. Gunakan StatefulSet atau pasang disk terpisah untuk setiap pod. Untuk menggunakan disk cloud dalam Deployment, lihat Gunakan disk cloud sebagai volume penyimpanan sementara. Untuk mengaktifkan multi-attach, lihat Gunakan disk cloud NVMe dengan multi-attach dan Reservation.

  1. Buat file bernama statefulset.yaml. Contoh berikut membuat StatefulSet dengan dua pod. Menggunakan volumeClaimTemplates untuk secara otomatis membuat dan mengikat penyimpanan persisten independen untuk setiap pod. > Penting: Mengonfigurasi securityContext.fsGroup dalam pod menyebabkan kubelet mengubah izin file secara rekursif (chmod/chown) saat volume dipasang. Jika volume berisi banyak file, hal ini secara signifikan meningkatkan waktu pemasangan. > > Untuk kluster yang menjalankan Kubernetes 1.20 atau lebih baru, atur fsGroupChangePolicy ke OnRootMismatch. Ini melakukan perubahan izin rekursif hanya pada pemasangan pertama dan hanya jika izin direktori root volume tidak sesuai dengan izin yang diperlukan. Jika Anda memerlukan penyetelan performa lebih lanjut atau kontrol izin yang lebih granular, gunakan initContainer untuk menjalankan perintah penyesuaian izin sebelum kontainer aplikasi utama dimulai.

       apiVersion: apps/v1
       kind: StatefulSet
       metadata:
         name: web
       spec:
         serviceName: "nginx"
         replicas: 2
         selector:
           matchLabels:
             app: nginx
         template:
           metadata:
             labels:
               app: nginx
           spec:
             # Konfigurasikan securityContext berikut untuk mengoptimalkan performa pemasangan
             securityContext:
               fsGroup: 1000
               fsGroupChangePolicy: "OnRootMismatch"
             containers:
             - name: nginx
               image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
               ports:
               - containerPort: 80
               volumeMounts:
               # Pasang volume data ke direktori /data kontainer
               # Nama harus sama dengan metadata.name yang didefinisikan dalam volumeClaimTemplates
               - name: pvc-disk
                 mountPath: /data
         # Definisikan templat PVC
         volumeClaimTemplates:
         - metadata:
             name: pvc-disk
           spec:
             # Mode akses
             accessModes: [ "ReadWriteOnce" ]
             # Asosiasikan StorageClass yang telah dibuat sebelumnya
             storageClassName: "alicloud-disk-wait-for-first-consumer"
             resources:
               requests:
                 # Kapasitas penyimpanan yang diminta, yaitu ukuran disk
                 storage: 20Gi
  2. Buat StatefulSet:

       kubectl create -f statefulset.yaml
  3. Konfirmasi bahwa pod berada dalam status Running:

       kubectl get pod -l app=nginx
  4. Periksa jalur pemasangan dan pastikan disk telah dipasang. > Catatan: Dalam contoh ini, nama pod adalah web-1. Ganti dengan nama pod aktual Anda. Output yang diharapkan:

       kubectl exec web-1 -- df -h /data
       Filesystem      Size  Used Avail Use% Mounted on
       /dev/vdb         20G   24K   20G   1% /data

Verifikasi penyimpanan persisten

Untuk memverifikasi bahwa data tetap ada setelah pod dibuat ulang, tulis data ke pod, hapus pod, lalu periksa apakah data masih tersedia.

  1. Tulis data uji ke pod. Untuk pod web-1, buat file test di jalur pemasangan disk /data: Output yang diharapkan:

       kubectl exec web-1 -- touch /data/test
       kubectl exec web-1 -- ls /data
       lost+found
       test
  2. Simulasikan kegagalan pod dengan menghapus pod: Jalankan kubectl get pod -l app=nginx lagi. Pod baru bernama web-1 secara otomatis dibuat.

       kubectl delete pod web-1
  3. Verifikasi data di pod baru. Periksa folder /data di pod baru web-1: File test masih ada, yang mengonfirmasi bahwa data tetap ada setelah pod dihapus dan dibuat ulang.

       kubectl exec web-1 -- ls /data
       lost+found
       test

Pasang disk ke pod tunggal atau Deployment single-replica

Untuk aplikasi yang tidak memerlukan penskalaan multi-replika atau Network ID stabil, buat PVC secara manual dan pasang ke pod atau Deployment.

Prosesnya: pilih StorageClass, buat PVC, lalu pasang PVC dalam aplikasi.

  1. Persiapkan StorageClass.

  2. Buat PVC untuk meminta resource penyimpanan.

    kubectl

    1. Buat file bernama disk-pvc.yaml.

         apiVersion: v1
         kind: PersistentVolumeClaim
         metadata:
           name: disk-pvc
         spec:
           # Mode akses
           accessModes:
           - ReadWriteOnce
           volumeMode: Filesystem
           resources:
             requests:
               # Kapasitas penyimpanan yang diminta, yaitu ukuran disk
               storage: 20Gi
           # Asosiasikan dengan StorageClass yang telah dibuat sebelumnya
           storageClassName: alicloud-disk-topology-alltype

      Tabel berikut menjelaskan parameter-parameter tersebut.

      Parameter

      Deskripsi

      accessModes

      Mode akses volume. Nilai yang valid: ReadWriteOnce, ReadOnlyMany, ReadWriteMany. Nilai yang didukung bergantung pada pengaturan multiAttach dalam StorageClass dan pengaturan volumeMode dalam PVC. multiAttach menentukan apakah multi-attach untuk disk diaktifkan. Default: false.

      • Jika multiAttach adalah false dan volumeMode diatur ke nilai apa pun, hanya ReadWriteOnce yang didukung.

      • Jika multiAttach adalah true dan volumeMode adalah Filesystem, hanya ReadWriteOnce dan ReadOnlyMany yang didukung.

      • Jika multiAttach adalah true dan volumeMode adalah Block, ketiga mode akses didukung.

      Penting: Dalam skenario ini, mode akses biasanya ReadWriteOnce (RWO), yang berarti volume hanya dapat dipasang oleh satu pod dalam satu waktu. Jumlah replika Deployment tidak boleh lebih dari 1. Jika Anda melakukan scale out Deployment, pod baru akan terjebak dalam status Pending karena tidak dapat memasang disk yang sedang digunakan.

      volumeMode

      Mode volume persisten. Nilai yang valid:

      • Filesystem (default): Volume diformat dan dipasang sebagai direktori.

      • Block: Volume disediakan ke pod sebagai perangkat blok yang belum diformat.

      storage

      Kapasitas penyimpanan yang diminta. Rentang kapasitas bervariasi tergantung tipe disk. Pastikan nilai storage mematuhi batas kapasitas tipe disk yang sesuai dengan StorageClass yang direferensikan untuk mencegah kegagalan pembuatan disk.

      storageClassName

      StorageClass yang akan diikat.

    2. Buat PVC:

         kubectl create -f disk-pvc.yaml
    3. Lihat PVC:

         kubectl get pvc

      Karena StorageClass menggunakan mode WaitForFirstConsumer, PVC berada dalam status Pending hingga pod pertama yang menggunakannya berhasil dijadwalkan.

         NAME       STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS                            VOLUMEATTRIBUTESCLASS   AGE
         disk-pvc   Pending                                      alicloud-disk-topology-alltype           <unset>                 14s

    Console

    1. Di panel navigasi kiri halaman manajemen kluster, pilih Storage > Persistent Volume Claims.

    2. Pada halaman Persistent Volume Claims, klik Create. Atur PVC Type ke Cloud Disk dan konfigurasikan parameter sesuai petunjuk.

      Parameter

      Deskripsi

      Allocation Mode

      Pilih Use StorageClass.

      Existing StorageClass

      StorageClass default atau yang dibuat secara manual.

      Capacity

      Kapasitas penyimpanan yang diminta. Rentang kapasitas bervariasi tergantung tipe disk. Pastikan nilai storage mematuhi batas kapasitas tipe disk yang sesuai dengan StorageClass yang direferensikan untuk mencegah kegagalan pembuatan disk.

      Access Mode

      Hanya ReadWriteOnce yang didukung. Artinya, volume hanya dapat dipasang sebagai read-write oleh satu pod.

      Setelah PVC dibuat, Anda dapat melihatnya di halaman Persistent Volume Claims.

  3. Pasang PVC dalam aplikasi.

    1. Buat file bernama disk-deployment.yaml.

         apiVersion: apps/v1
         kind: Deployment
         metadata:
           name: single-pod-app
         spec:
           # Pastikan jumlah replika adalah 1
           replicas: 1
           selector:
             matchLabels:
               app: nginx-single
           template:
             metadata:
               labels:
                 app: nginx-single
             spec:
               containers:
               - name: nginx
                 image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
                 ports:
                 - containerPort: 80
                 # Definisikan titik pemasangan dalam kontainer
                 volumeMounts:
                 - name: my-persistent-storage  # Harus sesuai dengan nama yang didefinisikan dalam volumes di bawah
                   mountPath: /data  # Pasang ke direktori /data dalam kontainer
               # Deklarasikan dan referensikan PVC di level pod
               volumes:
               - name: my-persistent-storage # Volume yang akan direferensikan oleh kontainer
                 persistentVolumeClaim:
                   claimName: disk-pvc # Referensikan PVC yang telah dibuat sebelumnya
    2. Deploy Deployment:

         kubectl create -f disk-deployment.yaml
  4. Verifikasi hasil pemasangan.

    1. Verifikasi bahwa pod sedang berjalan:

         kubectl get pods -l app=nginx-single
    2. Login ke pod dan periksa apakah disk telah dipasang ke direktori /data:

         # Dapatkan nama pod
         POD_NAME=$(kubectl get pods -l app=nginx-single -o jsonpath='{.items[0].metadata.name}')
         # Jalankan perintah df -h
         kubectl exec $POD_NAME -- df -h /data

      Output berikut menunjukkan bahwa disk 20 GiB berhasil dipasang:

         Filesystem      Size  Used Avail Use% Mounted on
         /dev/vdb         20G   24K   20G   1% /data

Mulai beroperasi

Ketersediaan tinggi

Pemilihan disk

Evaluasi performa disk, metode penagihan, zona node, dan keluarga instans. Hal ini memastikan bahwa pod dapat dijadwalkan ke node yang kompatibel.

Saat memilih tipe disk, perhatikan bahwa SSD standar dan ultra disk sedang dihentikan penggunaannya. Ganti ultra disk dengan ESSD PL0 atau ESSD Entry disk, dan ganti SSD standar dengan disk ESSD AutoPL.

Pemulihan bencana lintas zona

  • Pemulihan bencana tingkat aplikasi: Untuk layanan kritis seperti database, deploy instans aplikasi di beberapa zona. Gunakan mekanisme sinkronisasi data aplikasi untuk mencapai ketersediaan tinggi.

  • Pemulihan bencana tingkat penyimpanan: Pilih tipe disk yang mendukung pemulihan bencana multi-zona. Tulis data secara real-time ke zona berbeda dalam wilayah yang sama untuk mengaktifkan pemulihan kesalahan lintas zona. Untuk informasi selengkapnya, lihat Gunakan regional Enterprise SSD (ESSD).

Keamanan dan cadangan data

  • Cegah penghapusan data tidak sengaja: Atur reclaimPolicy StorageClass ke Retain. Saat PVC dihapus, disk backend tidak dihapus. Hal ini menyederhanakan pemulihan data.

  • Cadangan berkala: Volume dinamis menyederhanakan penyediaan resource tetapi bukan pengganti cadangan data. Untuk layanan inti, gunakan Backup Center untuk mencadangkan dan memulihkan data.

  • Enkripsi saat diam: Untuk aplikasi yang menangani data sensitif, konfigurasikan encrypted: "true" dalam StorageClass untuk mengenkripsi disk.

Optimasi performa dan biaya

Penagihan

Disk yang dibuat secara dinamis menggunakan StorageClass ditagih berdasarkan model bayar sesuai penggunaan. Untuk informasi selengkapnya, lihat penagihan Elastic Block Storage dan harga Elastic Block Storage.

FAQ

Apa yang harus saya lakukan jika PVC terjebak dalam status Pending saat pod dengan disk terpasang dijadwalkan ke node virtual?

Masalah ini dapat terjadi jika Anda menggunakan StorageClass yang tidak mendukung penjadwalan ke node virtual. Saat Anda menjadwalkan pod ke node virtual menggunakan label atau anotasi tertentu, StorageClass dengan volumeBindingMode: WaitForFirstConsumer tidak didukung.

Penyebab: Mode WaitForFirstConsumer mengandalkan kube-scheduler untuk memilih node fisik bagi pod. Hal ini menentukan zona pod, yang kemudian digunakan untuk membuat disk. Namun, beberapa mekanisme penjadwalan untuk node virtual tidak mengikuti proses ini, sehingga CSI tidak dapat memperoleh informasi zona. Akibatnya, PV tidak dapat dibuat dan PVC tetap dalam status Pending.

Diagnosis: Periksa apakah pod atau namespace-nya berisi konfigurasi berikut:

  • Label:

    • alibabacloud.com/eci: "true": Menjadwalkan pod ke pod ECI.

    • alibabacloud.com/acs: "true": Menjadwalkan pod ke pod ACS.

  • Spesifikasi node:

    • Pod secara langsung menentukan node menggunakan spec.nodeName. Nama node memiliki awalan virtual-kubelet.

  • Anotasi:

    • k8s.aliyun.com/eci-vswitch: Menentukan vSwitch untuk pod ECI.

    • k8s.aliyun.com/eci-fail-strategy: "fail-fast": Mengatur kebijakan penanganan kegagalan pod ECI menjadi fail-fast.

Referensi