Layanan Kontainer Serverless (ACK Serverless) menggunakan plug-in Container Storage Interface (CSI) untuk memprovisikan volume disk Alibaba Cloud secara otomatis sesuai permintaan. Topik ini memandu Anda dalam membuat StorageClass, mengajukan klaim penyimpanan melalui Persistent Volume Claim (PVC), serta memasang volume tersebut ke aplikasi berstatus.
Kasus penggunaan
Volume disk cocok untuk beban kerja yang memerlukan penyimpanan blok berkinerja tinggi dan eksklusif:
-
Aplikasi berstatus dengan kebutuhan I/O disk tinggi (misalnya, MySQL dan Redis) yang tidak berbagi data antar Pod
-
Penulisan log ber-throughput tinggi
-
Persistensi data yang independen dari siklus hidup Pod
Cara kerja provisioning dinamis
Saat Anda membuat PVC yang mereferensikan StorageClass, Kubernetes secara otomatis membuat dan mengikat Persistent Volume (PV) yang didukung oleh disk Alibaba Cloud. Hal ini menghilangkan kebutuhan pembuatan disk secara manual dan mengurangi beban infrastruktur penyimpanan.
Kluster ACK Serverless tidak menyertakan StorageClass bawaan. Buat StorageClass terlebih dahulu sebelum memprovisikan penyimpanan.
Kubernetes mendukung fitur StorageClass bawaan. Jika PVC tidak mereferensikan StorageClass, Kubernetes akan menggunakan StorageClass bawaan untuk memprovisikan PV. Untuk latar belakang konsep penyimpanan Kubernetes, lihat Dasar-dasar penyimpanan.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
-
Kluster ACK Serverless. Lihat Buat kluster ACK Serverless
-
kubectl yang terhubung ke kluster. Lihat Gunakan kubectl untuk terhubung ke kluster ACK
-
Plug-in CSI yang telah diinstal. Lihat Instal dan perbarui csi-provisioner
Provisikan volume disk
Ikuti langkah-langkah berikut secara berurutan:
-
Buat StorageClass untuk menentukan tipe disk dan perilaku provisioning.
-
Buat PVC untuk mengklaim penyimpanan dari StorageClass.
-
Terapkan aplikasi dan pasang PVC tersebut.
Konsol ACK
Langkah 1: Buat StorageClass
-
Login ke Konsol ACK dan klik Clusters di panel navigasi kiri.
-
Pada halaman Clusters, klik nama kluster target. Di panel kiri, pilih Volumes > StorageClasses.
-
Di pojok kanan atas halaman StorageClasses, klik Create.
-
Pada kotak dialog Create, konfigurasikan parameter berikut.
Tipe instans ECS tertentu tidak mendukung ESSD atau disk elastis sementara. Lihat FAQ tentang Elastic Block Storage.
Parameter Wajib Deskripsi Name Ya Nama StorageClass. Ikuti persyaratan format yang ditampilkan di konsol. PV Type Ya Pilih Cloud Disk. Parameter Ya Menentukan kategori disk menggunakan kunci type. Nilai default:cloud_essd. Nilai yang valid:cloud_essd(Enterprise SSD),cloud_regional_disk_auto(Regional ESSDs),elastic_ephemeral_disk_premium(premium elastic ephemeral disk),elastic_ephemeral_disk_standard(standard elastic ephemeral disk),cloud_ssd(standard SSD),cloud_efficiency(ultra disk). Untuk menentukan kategori fallback, tetapkan beberapa nilai sesuai urutan preferensi — misalnya,type: cloud_ssd,cloud_essd. Sistem mencoba setiap kategori secara berurutan dan berhenti ketika disk berhasil dibuat. Untuk membatasi pembuatan disk pada satu atau beberapa zona, tambahkan parameterzoneId— misalnya,cn-beijing-auntuk zona tunggal ataucn-beijing-a, cn-beijing-buntuk multi-zona.Reclaim Policy Ya Mengontrol apa yang terjadi pada PV dan disk saat PVC dihapus. Default: Delete (PV dan disk dihapus). Atur ke Retain untuk menyimpan PV dan disk guna pembersihan manual — direkomendasikan jika kehilangan data akan berdampak besar. Binding Mode Tidak Default: Immediate (disk dibuat sebelum Pod dijadwalkan). -
Klik Create. StorageClass baru muncul di halaman StorageClasses.
Langkah 2: Buat PVC
-
Di panel navigasi kiri halaman detail kluster, pilih Volumes > Persistent Volume Claims.
-
Di pojok kanan atas halaman Persistent Volume Claims, klik Create.
-
Pada kotak dialog Create PVC, konfigurasikan parameter berikut.
Parameter Wajib Deskripsi PVC Type Ya Pilih Cloud Disk. Name Ya Nama PVC. Harus unik dalam namespace. Allocation Mode Ya Pilih Use StorageClass. Existing Storage Class Ya Klik Select, temukan StorageClass yang dibuat pada Langkah 1, lalu klik Select di kolom Actions. Capacity Ya Kapasitas penyimpanan yang diklaim. Minimum: 20 GiB. Access Mode Tidak Default: ReadWriteOnce (baca/tulis single-node). -
Klik Create. PVC muncul di halaman Persistent Volume Claims dengan PV yang sudah terikat.
Langkah 3: Terapkan aplikasi
-
Di panel navigasi kiri halaman detail kluster, pilih Workloads > StatefulSets.
-
Di pojok kanan atas halaman StatefulSets, klik Create from Image.
-
Konfigurasikan aplikasi. Saat mengatur volume, pilih Cloud Storage dan pasang PVC yang dibuat pada Langkah 2. Dalam contoh ini, volume disk dipasang ke
/tmp— data kontainer yang ditulis ke/tmpdisimpan dalam volume disk. Untuk parameter aplikasi lainnya, lihat Gunakan StatefulSet untuk membuat aplikasi berstatus.
-
Klik Create. Aplikasi diterapkan dan menggunakan volume disk untuk penyimpanan persisten.
kubectl
Langkah 1: Buat StorageClass
Pada kluster multi-zona, StorageClass menentukan tipe disk yang akan diprovisikan sebelum Pod dijadwalkan.
-
Buat file bernama
storage-class-csi.yamldengan konten berikut:Parameter Wajib Deskripsi provisionerYa Atur ke diskplugin.csi.alibabacloud.com. Ini mengidentifikasi provisioner CSI disk Alibaba Cloud.typeYa Kategori disk. Nilai yang valid: cloud_auto(ESSD AutoPL disk),cloud_essd(ESSD, default),cloud_essd_entry(ESSD Entry disk),cloud_ssd(standard SSD),cloud_efficiency(ultra disk),elastic_ephemeral_disk_standard(standard elastic ephemeral disk),elastic_ephemeral_disk_premium(premium elastic ephemeral disk),cloud_regional_disk_auto(Regional ESSDs). Tentukan beberapa nilai sebagai daftar fallback yang dipisahkan koma. Untuk panduan pemilihan disk, lihat Harga EBS, Kinerja penyimpanan blok, dan Ikhtisar keluarga instans.encryptedTidak Apakah disk akan dienkripsi. Default: false.reclaimPolicyYa Mengontrol apa yang terjadi pada PV dan disk saat PVC dihapus. Deletemenghapus keduanya secara otomatis.Retainmenyimpan keduanya untuk pembersihan manual — gunakanRetainjika kehilangan data akan berdampak besar. Default:Delete.allowVolumeExpansionTidak Atur ke trueuntuk mengizinkan perluasan disk online.volumeBindingModeTidak Default: Immediate(disk diprovisikan sebelum Pod dijadwalkan).apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-disk-ssd-b # Gunakan diskplugin.csi.alibabacloud.com sebagai provisioner untuk disk Alibaba Cloud. provisioner: diskplugin.csi.alibabacloud.com parameters: # Urutan fallback kategori disk: ESSD → standard SSD → ultra disk. # Sistem mencoba setiap nilai secara berurutan dan berhenti ketika disk berhasil dibuat. type: cloud_essd,cloud_ssd,cloud_efficiency # Opsional. Atur ke "true" untuk mengenkripsi disk saat idle. encrypted: "false" # Retain: menyimpan PV dan disk saat PVC dihapus (perlu pembersihan manual). # Delete: menghapus PV dan disk secara otomatis saat PVC dihapus. reclaimPolicy: Retain # Mengizinkan perluasan disk online tanpa downtime. allowVolumeExpansion: true # Immediate: memprovisikan disk sebelum menjadwalkan Pod. volumeBindingMode: Immediate -
Terapkan StorageClass:
kubectl apply -f storage-class-csi.yaml -
Verifikasi StorageClass di Konsol ACK: login, klik Clusters, klik nama kluster target, lalu pilih Volumes > StorageClasses. StorageClass baru muncul dalam daftar.
Langkah 2: Buat PVC
-
Buat file bernama
pvc-ssd.yamldengan konten berikut:Parameter Wajib Deskripsi nameYa Nama PVC. accessModesYa Mode akses untuk PV yang diprovisikan. volumeModeTidak Format pemasangan disk. Filesystemdidukung.storageClassNameYa Nama StorageClass yang digunakan untuk provisioning. storageYa Kapasitas penyimpanan yang diklaim. Minimum: 20 GiB. apiVersion: v1 kind: PersistentVolumeClaim metadata: name: disk-pvc spec: accessModes: - ReadWriteOnce volumeMode: Filesystem resources: requests: storage: 25Gi storageClassName: alicloud-disk-ssd-b -
Buat PVC:
kubectl create -f pvc-ssd.yaml -
Verifikasi PVC di Konsol ACK: di halaman detail kluster, pilih Volumes > Persistent Volume Claims. PVC muncul dalam daftar dengan PV yang sudah terikat.
Langkah 3: Terapkan aplikasi
-
Buat file bernama
pvc-dynamic.yamldengan konten berikut:Parameter Deskripsi mountPathJalur di dalam kontainer tempat volume disk dipasang. claimNameNama PVC yang akan dipasang. Harus sesuai dengan PVC yang dibuat pada Langkah 2. apiVersion: apps/v1 kind: StatefulSet metadata: name: nginx-dynamic spec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80 name: web volumeMounts: - name: pvc-disk mountPath: /data # Jalur di dalam kontainer tempat disk dipasang. volumes: - name: pvc-disk persistentVolumeClaim: claimName: disk-pvc # Harus sesuai dengan nama PVC yang dibuat pada Langkah 2. -
Terapkan aplikasi:
kubectl create -f pvc-dynamic.yaml -
Verifikasi penerapan di Konsol ACK: di halaman detail kluster, pilih Workloads > StatefulSets. Aplikasi muncul dalam daftar.
Langkah selanjutnya
-
Jika Anda mengalami error terkait volume disk, lihat FAQ tentang volume disk.
-
Untuk memperbesar disk yang kapasitasnya hampir habis, lihat Perbesar volume disk.
-
Untuk memantau penggunaan disk secara real-time, lihat Ikhtisar pemantauan penyimpanan kontainer.