All Products
Search
Document Center

Container Service for Kubernetes:Dasar-dasar penyimpanan

Last Updated:Jun 16, 2026

Pahami volume, PV, PVC, dan StorageClass untuk mengonfigurasi persistent storage di ACK.

Volume

Filesystem kontainer bersifat sementara—file akan hilang saat restart. Volume mendefinisikan penyimpanan eksternal dalam spesifikasi pod; Kubernetes memasangnya ke dalam kontainer pada waktu proses.

ACK mendukung tipe volume berikut:

Type

Description

Local storage

Volume lokal node seperti hostPath dan emptyDir. Data terikat pada node dan akan hilang jika node tersebut mati. Tidak cocok untuk beban kerja stateful yang mungkin dijadwalkan ulang.

Network storage

Volume remote seperti Ceph, GlusterFS, NFS, dan iSCSI. Data disimpan pada layanan remote, tetapi layanan tersebut harus dipasang secara lokal.

Secret dan ConfigMap

Volume khusus yang mengekspos data objek kluster (kredensial, konfigurasi) ke pod sebagai file.

PVC

Volume yang didukung oleh PersistentVolumeClaim yang mengabstraksikan penyimpanan sebagai objek independen. Gunakan untuk penyimpanan yang tahan lama dan portabel.

Catatan penggunaan:

  • Sebuah pod dapat memasang beberapa volume, termasuk tipe yang berbeda.

  • Semua kontainer dalam satu pod berbagi volume yang dipasang.

  • Volume memiliki siklus hidup yang sama dengan pod. Persistensi data setelah penghapusan pod bergantung pada tipe volume dan konfigurasinya.

  • Untuk data yang tahan lama, gunakan PVC dan PV.

PV dan PVC

Tidak semua volume Kubernetes bersifat persisten. Untuk penyimpanan tahan lama, Kubernetes memperkenalkan dua objek yang memisahkan cara penyimpanan disediakan dari cara penyimpanan dikonsumsi:

  • PV adalah resource penyimpanan kluster, analog dengan node: pod mengonsumsi node, dan PVC mengonsumsi PV. PV memiliki siklus hidup sendiri, terlepas dari pod mana pun.

  • PVC adalah permintaan penyimpanan, analog dengan pod: sebagaimana pod meminta CPU dan memori dari node, PVC meminta kapasitas dan mode akses dari PV.

Pengembang mendeklarasikan kebutuhan penyimpanan (PVC), sedangkan administrator mengelola provisioning (PV).

Contoh PV

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-example
spec:
  capacity:
    storage: 20Gi # sesuaikan agar sesuai dengan ukuran disk cloud aktual
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  csi:
    driver: diskplugin.csi.alibabacloud.com
    volumeHandle: <disk ID>
  volumeMode: Filesystem

Contoh PVC

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-example
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
  volumeName: pv-example

Aturan binding

PV dan PVC memiliki hubungan satu-ke-satu: tepat satu PVC terikat pada setiap PV. Sebelum PVC dapat digunakan oleh pod, Kubernetes harus menemukan PV yang memenuhi persyaratan berikut:

Field

Requirement

volumeMode

Harus sesuai dengan mode volume PVC

accessModes

Harus mencakup mode akses yang diminta oleh PVC

storageClassName

Jika ditentukan dalam PVC, PV harus memiliki StorageClass yang sama

Label selector

PV harus sesuai dengan pemilih label apa pun yang didefinisikan dalam PVC

storage

Kapasitas PV harus minimal sebesar jumlah yang diminta oleh PVC

Cara kerja field storage:

  • Kubernetes menggunakan storage untuk mencocokkan dan mengikat PV ke PVC.

  • Dalam provisioning dinamis, nilai storage pada PVC menetapkan kapasitas PV dan resource dasarnya (seperti disk cloud).

  • Untuk tipe penyimpanan yang mendukung resizing, nilai storage pada PVC menetapkan kapasitas target setelah skala keluar.

  • storage adalah deklarasi kapasitas logis. Kapasitas penulisan aktual bergantung pada media penyimpanan dasar, bukan pada field storage.

Mode akses volume

Gunakan field accessModes untuk menentukan cara volume dapat dipasang:

Access mode

Abbreviation

Description

Example

ReadWriteOnce

RWO

Baca-tulis oleh satu node

Alibaba Cloud disk

ReadOnlyMany

ROX

Hanya baca oleh banyak node

OSS bucket

ReadWriteMany

RWX

Baca-tulis oleh banyak node

NAS file system

Cara volume disediakan

ACK mendukung dua alur kerja provisioning: statis dan dinamis.

Provisioning statis

image

Dalam provisioning statis, administrator kluster membuat PV terlebih dahulu. Disk cloud, sistem file NAS, dan bucket OSS mendukung provisioning statis.

  1. Administrator mengalokasikan resource penyimpanan (misalnya, disk cloud atau sistem file NAS) berdasarkan kebutuhan pod.

  2. Administrator membuat PV yang menggambarkan resource tersebut, termasuk kapasitas dan konfigurasinya.

  3. Pengembang membuat PVC yang mendeklarasikan kebutuhan beban kerjanya.

  4. Saat pod dibuat, Kubernetes mengikat PVC ke PV yang sesuai.

Provisioning dinamis

Dalam provisioning dinamis, provisioner CSI membuat PV secara otomatis ketika PVC dibuat. Disk cloud, sistem file NAS, dan bucket OSS mendukung provisioning dinamis.

  1. Administrator membuat StorageClass yang mendefinisikan tipe penyimpanan dan provisioner. Misalnya, diskplugin.csi.alibabacloud.com menyediakan disk cloud.

  2. Pengembang membuat PVC yang mereferensikan StorageClass. Tidak perlu membuat PV secara manual.

  3. Saat pod dibuat, provisioner CSI membaca StorageClass, membuat PV dan resource penyimpanan dasarnya, lalu mengikat PV ke PVC.

Provisioning dinamis menawarkan tiga keunggulan:

  • Manajemen siklus hidup otomatis: provisioner menangani pembuatan dan penghapusan PV secara otomatis.

  • Mengurangi beban operasional: administrator mengelola StorageClass daripada PV individual.

  • Konsistensi kapasitas: PV dan resource dasarnya selalu sesuai dengan kapasitas yang diminta oleh PVC.

StorageClasses

StorageClass mendefinisikan tipe penyimpanan, provisioner, dan parameter yang digunakan untuk provisioning dinamis. Saat PVC mereferensikan StorageClass dan tidak ada PV yang sesuai, Kubernetes memicu provisioner untuk membuat PV dan penyimpanan dasar secara otomatis.

Contoh StorageClass

StorageClass berikut menyediakan disk Alibaba Cloud:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alicloud-disk-topology-alltype
provisioner: diskplugin.csi.alibabacloud.com
parameters:
  type: cloud_auto,cloud_essd,cloud_ssd,cloud_efficiency
  fstype: ext4
  diskTags/a: b
  encrypted: "false"
  performanceLevel: PL1
  provisionedIops: "40000"
  burstingEnabled: "false"
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer

Parameter utama

Parameter

Description

provisioner

Driver CSI untuk provisioning penyimpanan. Gunakan diskplugin.csi.alibabacloud.com untuk disk cloud, nasplugin.csi.alibabacloud.com untuk NAS, atau ossplugin.csi.alibabacloud.com untuk OSS.

parameters

Parameter khusus driver, seperti tipe disk, tipe sistem file, dan pengaturan performa.

reclaimPolicy

Apa yang terjadi pada PV dan penyimpanan dasar saat PVC dihapus. Delete (default) menghapus PV dan disk cloud. Retain menyimpan keduanya—Anda harus menghapusnya secara manual. Tetapkan ke Retain jika keamanan data menjadi prioritas.

allowVolumeExpansion

Tetapkan ke true untuk mengaktifkan ekspansi disk online.

volumeBindingMode

Kapan PV disediakan. Lihat tabel di bawah.

Memilih volumeBindingMode:

Mode

Kapan PV dibuat

Direkomendasikan untuk

Immediate (default)

Saat PVC dibuat, sebelum pod mana pun dijadwalkan

Kluster single-zone

WaitForFirstConsumer

Setelah pod yang menggunakan PVC dijadwalkan ke suatu node

Kluster multi-zona

Gunakan WaitForFirstConsumer di kluster multi-zona. Disk cloud tidak dapat dipasang lintas zona. Jika PV berada di Zona A tetapi pod dijadwalkan ke Zona B, pod gagal memulai. Dengan WaitForFirstConsumer, provisioner menunggu penjadwalan pod, lalu membuat disk di zona pod tersebut.

Cara kerja WaitForFirstConsumer:

Saat PVC dibuat, provisioner menunggu hingga pod mengonsumsinya. Scheduler menempatkan pod pada suatu node dan menulis hasilnya (wilayah dan node) ke metadata PVC. Provisioner kemudian membuat PV dan disk di zona yang benar.

StorageClass default

StorageClass default secara otomatis menyediakan PV untuk setiap PVC yang tidak menyebutkan nama StorageClass.

Penting

Kluster ACK tidak menyertakan StorageClass default. StorageClass default berlaku untuk semua PVC tanpa storageClassName. Jika kluster Anda menggunakan beberapa tipe penyimpanan, StorageClass default mungkin menyediakan tipe yang salah. Aktifkan hanya jika semua PVC menggunakan tipe penyimpanan yang sama.

Tetapkan StorageClass default:

Tandai alicloud-disk-topology-alltype sebagai default:

kubectl annotate storageclass alicloud-disk-topology-alltype storageclass.kubernetes.io/is-default-class=true

Verifikasi perubahan:

kubectl get sc

Output yang diharapkan:

NAME                                        PROVISIONER                       AGE
alicloud-disk-topology-alltype (default)    diskplugin.csi.alibabacloud.com   96m

Buat PVC tanpa menentukan StorageClass:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: disk-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi

Kluster secara otomatis membuat PV disk cloud menggunakan alicloud-disk-topology-alltype.

kubectl get pvc

Output yang diharapkan:

NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES    STORAGECLASS                      AGE
disk-pvc   Bound    d-bp18pbai447qverm****   20Gi       RWO             alicloud-disk-topology-alltype    49s

Hapus StorageClass default:

kubectl annotate storageclass alicloud-disk-topology-alltype storageclass.kubernetes.io/is-default-class-

StorageClass yang disediakan oleh ACK

StorageClass

Disk type

Notes

alicloud-disk-efficiency

Ultra disk

Disk cloud generasi sebelumnya

alicloud-disk-ssd

Standard SSD

Disk cloud generasi sebelumnya

alicloud-disk-essd

ESSD

Enterprise SSD Performance Level 1 (PL1)

alicloud-disk-topology-alltype

Multi-type

Mencoba ESSD terlebih dahulu, lalu standard SSD, kemudian ultra disk. Direkomendasikan untuk kluster multi-zona.

alibabacloud-cnfs-nas

NAS yang dikelola CNFS

Membuat volume NAS yang dikelola Container Network File System (CNFS)

StorageClass alicloud-disk-topology-alltype memilih tipe disk terbaik yang tersedia:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alicloud-disk-topology-alltype
parameters:
  type: cloud_essd,cloud_ssd,cloud_efficiency
provisioner: diskplugin.csi.alibabacloud.com
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer

Langkah selanjutnya

Lihat Storage untuk semua tipe penyimpanan dan panduan.

Untuk menyediakan tipe penyimpanan tertentu: