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:
Definisikan templat. Buat StorageClass baru atau gunakan yang default. Templat ini menentukan parameter seperti tipe disk, tingkat performa, dan kebijakan reclaim.
Deklarasikan kebutuhan penyimpanan. Definisikan
volumeClaimTemplatesdalam StatefulSet dan referensikan StorageClass tersebut. Ini mendeklarasikan spesifikasi PVC yang digunakan setiap pod, seperti kapasitas penyimpanan dan mode akses.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 |
| Menjadwalkan pod sebelum membuat disk untuk mencegah kegagalan pemasangan akibat ketidaksesuaian zona ( |
| 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 |
| SSD standar. Kapasitas disk minimum adalah 20 GiB. |
| Ultra disk. Kapasitas disk minimum adalah 20 GiB. |
Jalankan kubectl describe sc <storageclass-name> untuk melihat konfigurasi detail StorageClass.Buat StorageClass secara manual
kubectl
Buat file bernama
disk-sc.yaml. Contoh berikut menunjukkan StorageClass yang menggunakanvolumeBindingMode: WaitForFirstConsumeruntuk 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 bertipeWaitForFirstConsumer. 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
provisionerTipe driver. Wajib diisi. Atur ke
diskplugin.csi.alibabacloud.comuntuk plugin CSI disk Alibaba Cloud.parameters.typeTipe disk. Wajib diisi. Nilai yang valid:
cloud_essd(default): enterprise SSD (ESSD)cloud_auto: ESSD AutoPL diskcloud_essd_entry: ESSD Entry diskcloud_ssd: standard SSDcloud_efficiency: ultra diskelastic_ephemeral_disk_standard: Standard Edition elastic ephemeral diskelastic_ephemeral_disk_premium: premium elastic ephemeral diskcloud_regional_disk_auto: regional Enterprise SSD (ESSD)
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.resourceGroupIdKelompok sumber daya tempat disk berada. Default:
"".parameters.regionIdWilayah tempat disk berada. Harus sesuai dengan wilayah kluster.
parameters.fstypeTipe sistem file. Nilai yang valid:
ext4(default) danxfs.parameters.mkfsOptionsParameter untuk memformat disk. Contoh:
mkfsOptions: "-O project,quota".parameters.diskTagsTag untuk disk. Contoh:
diskTags: "a:b,b:c". Anda juga dapat menentukan tag dalam formatdiskTags/a: b. Memerlukan CSI v1.30.3 atau lebih baru.parameters.encryptedApakah disk dienkripsi. Default:
false(tidak dienkripsi).parameters.performanceLevelTingkat performa ESSD. Nilai yang valid:
PL0,PL1(default),PL2,PL3. Saat digunakan dengan CloudBox, atur kePL0.parameters.volumeExpandAutoSnapshot[Deprecated]Deprecated sejak CSI v1.31.4.
parameters.provisionedIopsPerforma yang disediakan (IOPS) untuk disk ESSD AutoPL.
parameters.burstingEnabledApakah fitur Burst (performance burst) diaktifkan untuk disk ESSD AutoPL. Default:
false.parameters.multiAttachApakah fitur multi-attach disk diaktifkan. Default:
false.volumeBindingModeMode 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
WaitForFirstConsumeruntuk mencegah kegagalan pemasangan akibat disk dan node ECS berada di zona berbeda.reclaimPolicyKebijakan 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
Retainuntuk mencegah penghapusan data secara tidak sengaja.allowVolumeExpansionAtur ke
trueuntuk mengizinkan ekspansi volume disk online.allowedTopologiesMembatasi 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-kBuat StorageClass:
kubectl create -f disk-sc.yamlLihat StorageClass: Output menunjukkan bahwa StorageClass dibuat dalam mode pengikatan
WaitForFirstConsumer:kubectl get scNAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE alicloud-disk-wait-for-first-consumer diskplugin.csi.alibabacloud.com Retain WaitForFirstConsumer true 10s
Console
Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Storage > StorageClasses.
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:cloud_essd(default): enterprise SSD (ESSD)cloud_auto: ESSD AutoPL diskcloud_essd_entry: ESSD Entry diskcloud_ssd: standard SSDcloud_efficiency: ultra diskelastic_ephemeral_disk_standard: Standard Edition elastic ephemeral diskelastic_ephemeral_disk_premium: premium elastic ephemeral diskcloud_regional_disk_auto: regional Enterprise SSD (ESSD)
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) danxfs.mkfsOptions: Parameter untuk memformat disk. Contoh:mkfsOptions: "-O project,quota".diskTags: Tag untuk disk. Contoh:diskTags: "a:b,b:c". Juga mendukung formatdiskTags/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 kePL0.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
Retainuntuk 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
WaitForFirstConsumeruntuk 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.
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.
Buat file bernama
statefulset.yaml. Contoh berikut membuat StatefulSet dengan dua pod. MenggunakanvolumeClaimTemplatesuntuk secara otomatis membuat dan mengikat penyimpanan persisten independen untuk setiap pod. > Penting: MengonfigurasisecurityContext.fsGroupdalam 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, aturfsGroupChangePolicykeOnRootMismatch. 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, gunakaninitContaineruntuk 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: 20GiBuat StatefulSet:
kubectl create -f statefulset.yamlKonfirmasi bahwa pod berada dalam status Running:
kubectl get pod -l app=nginxPeriksa 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 /dataFilesystem 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.
Tulis data uji ke pod. Untuk pod
web-1, buat filetestdi jalur pemasangan disk/data: Output yang diharapkan:kubectl exec web-1 -- touch /data/test kubectl exec web-1 -- ls /datalost+found testSimulasikan kegagalan pod dengan menghapus pod: Jalankan
kubectl get pod -l app=nginxlagi. Pod baru bernamaweb-1secara otomatis dibuat.kubectl delete pod web-1Verifikasi data di pod baru. Periksa folder
/datadi pod baruweb-1: Filetestmasih ada, yang mengonfirmasi bahwa data tetap ada setelah pod dihapus dan dibuat ulang.kubectl exec web-1 -- ls /datalost+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.
Persiapkan StorageClass.
Buat PVC untuk meminta resource penyimpanan.
kubectl
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-alltypeTabel berikut menjelaskan parameter-parameter tersebut.
Parameter
Deskripsi
accessModesMode akses volume. Nilai yang valid:
ReadWriteOnce,ReadOnlyMany,ReadWriteMany. Nilai yang didukung bergantung pada pengaturanmultiAttachdalam StorageClass dan pengaturanvolumeModedalam PVC.multiAttachmenentukan apakah multi-attach untuk disk diaktifkan. Default:false.Jika
multiAttachadalahfalsedanvolumeModediatur ke nilai apa pun, hanyaReadWriteOnceyang didukung.Jika
multiAttachadalahtruedanvolumeModeadalahFilesystem, hanyaReadWriteOncedanReadOnlyManyyang didukung.Jika
multiAttachadalahtruedanvolumeModeadalahBlock, 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 statusPendingkarena tidak dapat memasang disk yang sedang digunakan.volumeModeMode volume persisten. Nilai yang valid:
Filesystem(default): Volume diformat dan dipasang sebagai direktori.Block: Volume disediakan ke pod sebagai perangkat blok yang belum diformat.
storageKapasitas penyimpanan yang diminta. Rentang kapasitas bervariasi tergantung tipe disk. Pastikan nilai
storagemematuhi batas kapasitas tipe disk yang sesuai dengan StorageClass yang direferensikan untuk mencegah kegagalan pembuatan disk.storageClassNameStorageClass yang akan diikat.
Buat PVC:
kubectl create -f disk-pvc.yamlLihat PVC:
kubectl get pvcKarena StorageClass menggunakan mode
WaitForFirstConsumer, PVC berada dalam statusPendinghingga 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
Di panel navigasi kiri halaman manajemen kluster, pilih Storage > Persistent Volume Claims.
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
storagemematuhi 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.
Pasang PVC dalam aplikasi.
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 sebelumnyaDeploy Deployment:
kubectl create -f disk-deployment.yaml
Verifikasi hasil pemasangan.
Verifikasi bahwa pod sedang berjalan:
kubectl get pods -l app=nginx-singleLogin 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 /dataOutput 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
reclaimPolicyStorageClass keRetain. 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
Pemasangan paralel: Secara default, operasi disk pada satu node bersifat serial. Gunakan pemasangan disk paralel untuk mempercepat startup pod.
Ekspansi volume online: Atur
allowVolumeExpansion: truedalam StorageClass. Hal ini memungkinkan Anda memperluas volume disk secara online seiring pertumbuhan kebutuhan penyimpanan.Pemantauan dan peringatan penyimpanan: Konfigurasikan peringatan berdasarkan pemantauan penyimpanan kontainer untuk mendeteksi anomali volume atau bottleneck performa.
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 awalanvirtual-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
Jika Anda mengalami masalah saat menggunakan volume disk, lihat FAQ volume disk.
Untuk saran optimasi deployment disk multi-zona, lihat Konfigurasi yang direkomendasikan untuk ketersediaan tinggi volume disk.
Jika kluster Anda masih menggunakan komponen FlexVolume yang sudah deprecated, migrasikan FlexVolume ke CSI.
Untuk informasi selengkapnya tentang cara membuat workload, lihat Buat StatefulSet dan Buat Deployment.
Jika Anda tidak lagi menggunakan disk dan ingin menghentikan penagihan, lepaskan disk. Melepas disk akan menghapus disk dan datanya, serta menghentikan penagihan.