Ketika volume disk kehabisan ruang penyimpanan, Anda dapat memperluas kapasitasnya dengan mengubah ukuran disk. Anda dapat memperluas volume disk tanpa gangguan layanan menggunakan Plugin Container Storage Interface (CSI) di klaster Container Service for Kubernetes (ACK) yang menjalankan Kubernetes versi 1.16 atau lebih baru. Topik ini menjelaskan cara memperluas volume disk tanpa gangguan layanan.
Skenario
Dalam contoh ini, Anda dapat memperluas volume disk dengan mengubah Persistent Volume Claim (PVC). Berikut adalah skenario di mana metode ini dapat digunakan:
PVC terikat pada Persistent Volume (PV) dari disk yang dikaitkan dengan StorageClass, dan parameter
allowVolumeExpansion: trueditentukan dalam StorageClass.CatatanSecara default, parameter
allowVolumeExpansion: truesudah ditentukan dalam StorageClass yang disediakan oleh ACK. Untuk StorageClass yang Anda buat sendiri, Anda harus menentukan parameter ini. Properti StorageClass tidak dapat diubah setelah dibuat; Anda hanya dapat membuat StorageClass baru.Pod aplikasi tempat disk dilampirkan harus dalam status Running.
Jika disk adalah disk dasar, Anda tidak dapat memperluas volume disk menggunakan metode ini.
Jika versi Kubernetes klaster lebih lama dari 1.16, Anda tidak dapat menggunakan metode ini untuk memperluas volume disk. Untuk informasi lebih lanjut tentang cara meningkatkan versi Kubernetes klaster, lihat Tingkatkan Klaster.
Anda hanya dapat memperluas volume disk dari disk yang mendukung perubahan ukuran. Untuk informasi lebih lanjut, lihat ResizeDisk.
Persiapan
Snapshot telah dibuat untuk disk Anda.
PentingUntuk mencegah kehilangan data akibat operasi yang tidak disengaja selama proses ekspansi, kami sarankan Anda membuat snapshot untuk mencadangkan data disk sebelum mengubah ukuran disk. Setelah ekspansi selesai, Anda dapat menghapus snapshot untuk menghindari biaya tambahan. Untuk informasi lebih lanjut, lihat Gunakan Snapshot Disk.
Jika klaster Anda adalah klaster khusus ACK, berikan izin ResizeDisk kepada peran RAM yang ditugaskan ke klaster.
CatatanJika Anda menggunakan klaster terkelola ACK, Anda tidak perlu memberikan izin ResizeDisk kepada klaster.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan klaster yang diinginkan dan klik namanya. Di panel kiri, klik Cluster Information.
Klik tab Basic Information, lalu klik tautan di samping Master RAM Role di bagian Cluster Resources.
Di halaman Roles Konsol RAM, tambahkan izin ResizeDisk.
Untuk detail langkah-langkahnya, lihat Ubah Dokumen dan Deskripsi Kebijakan Kustom.

Prosedur
Jika volume disk yang diprovision secara dinamis dilampirkan ke aplikasi yang ada, Anda dapat memodifikasi PVC untuk memperluas volume disk tanpa interupsi pod.
Contoh berikut menggunakan aplikasi yang dibuat di volume disk yang diprovision secara dinamis untuk menjelaskan cara memperluas volume disk.
Gunakan kubectl
Hubungkan ke klaster. Untuk informasi lebih lanjut, lihat Dapatkan File kubeconfig dari Klaster dan Gunakan kubectl untuk Menghubungkan ke Klaster atau Gunakan kubectl di Workbench atau Cloud Shell untuk Menghubungkan ke Klaster ACK.
Periksa informasi pod, disk, PVC, dan StorageClass terkait sebelum memperluas volume disk.
Lihat informasi tentang pod tempat disk dilampirkan dan pastikan bahwa pod dalam status Running.
kubectl get pod -l app=nginxOutput yang Diharapkan:
NAME READY STATUS RESTARTS AGE disk-test-0 1/1 Running 0 23hLihat penggunaan disk direktori tempat disk dipasang.
kubectl exec disk-test-0 -- df -h /dataOutput yang Diharapkan:
Filesystem Size Used Avail Use% Mounted on /dev/vdb 20G 24K 20G 1% /dataPeriksa PVC.
kubectl get pvcDalam contoh berikut, nama PVC adalah
dik-pvc, ID disk yang diikat ke PVC adalahd-uf6axyb1er071h6o****, dan kapasitasnya adalah 20 GiB. StorageClass yang terkait dengan PVC adalahalicloud-disk-wait-for-first-consumer.PentingUntuk volume disk yang diprovision secara statis, Anda harus memastikan bahwa parameter
storageClassNamedalam PVC tidak kosong dan StorageClass dengan nama yang sama tersedia di klaster. Jika tidak ada StorageClass dengan nama yang sama di klaster, Anda harus membuat StorageClass berdasarkan atribut volume disk yang ada dan menentukan parameterallowVolumeExpansion: true.NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE disk-pvc Bound d-uf6axyb1er071h6o**** 20Gi RWO alicloud-disk-wait-for-first-consumer <unset> 23hPeriksa StorageClass dan apakah ekspansi diaktifkan.
kubectl get sc alicloud-disk-wait-for-first-consumer -o yamlRespon yang diharapkan ditampilkan. Parameter
allowVolumeExpansion: truemenunjukkan bahwa ekspansi diaktifkan.allowVolumeExpansion: true apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: creationTimestamp: "2025-01-21T08:48:26Z" name: alicloud-disk-wait-for-first-consumer resourceVersion: "59936" uid: 5bdb798e-5888-40df-9f91-259ee8510f34 parameters: type: cloud_auto,cloud_essd,cloud_ssd provisioner: diskplugin.csi.alibabacloud.com reclaimPolicy: Retain volumeBindingMode: WaitForFirstConsumer
Modifikasi PVC dan sesuaikan ukuran disk.
Dalam contoh ini, disk perlu diperluas menjadi 30 GiB. Berikut adalah contoh perintah:
kubectl patch pvc disk-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'Tunggu satu menit, lalu periksa apakah disk telah diubah ukurannya.
Periksa PVC.
kubectl get pvcOutput perintah menunjukkan bahwa ukuran disk meningkat menjadi 30 GiB.
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE disk-pvc Bound d-uf6axyb1er071h6o**** 30Gi RWO alicloud-disk-wait-for-first-consumer <unset> 23hLihat penggunaan disk direktori tempat disk dipasang.
kubectl exec disk-test-0 -- df -h /dataOutput perintah menunjukkan bahwa disk telah diubah ukurannya.
Filesystem Size Used Avail Use% Mounted on /dev/vdb 30G 24K 30G 1% /data
Gunakan Konsol ACK
Konsol ACK hanya mendukung volume disk yang diprovision secara dinamis. Untuk informasi lebih lanjut tentang volume disk yang diprovision secara statis, lihat Gunakan kubectl.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama klaster yang ingin Anda kelola untuk masuk ke halaman manajemen klaster.
Periksa apakah pod tempat disk dilampirkan dalam status Running dan lihat PVC yang digunakan oleh pod.
Di panel navigasi kiri halaman manajemen klaster, pilih .
Klik nama aplikasi yang ingin Anda lihat. Di tab Pods, pastikan bahwa pod dalam status Running.

Klik nama pod. Di tab Volumes, lihat PVC yang digunakan oleh pod.

Periksa StorageClass dan apakah ekspansi diaktifkan.
Di panel navigasi kiri halaman detail, pilih .
Temukan StorageClass yang digunakan oleh volume disk dan klik View in YAML.
Periksa apakah parameter
allowVolumeExpansion: trueditentukan.
Modifikasi PVC untuk memperluas volume disk.
Di panel navigasi kiri halaman manajemen klaster, pilih .
Temukan PVC yang ingin Anda kelola dan klik Expand.
Di kotak dialog yang muncul, masukkan kapasitas baru, pilih Saya memahami dan setuju dengan operasi sebelumnya, lalu klik OK.

Tunggu hingga ekspansi selesai, lalu periksa apakah kapasitas PVC telah diperluas.
Referensi
Untuk informasi lebih lanjut tentang cara secara otomatis memperluas volume disk ketika penggunaan volume disk melebihi ambang batas tertentu, lihat Secara Otomatis Memperluas Volume Disk (Pratinjau Publik).
Untuk informasi lebih lanjut tentang kesalahan yang terjadi saat menggunakan volume disk, lihat FAQ tentang Volume Disk.