All Products
Search
Document Center

Container Compute Service:Gunakan disk sebagai volume dinamis

Last Updated:Jun 18, 2026

Pasang volume disk dinamis ke aplikasi dan verifikasi persistensi datanya.

Latar Belakang

Disk adalah produk penyimpanan tingkat blok yang menggunakan mekanisme multi-replika terdistribusi untuk mencapai latensi rendah, performa tinggi, daya tahan, dan keandalan. Disk sangat cocok untuk data non-shared dengan persyaratan I/O dan latensi yang ketat. Untuk informasi lebih lanjut, lihat Ikhtisar penyimpanan.

Catatan

ACS hanya mendukung pemasangan volume disk secara dinamis; pemasangan statis tidak didukung.

Prasyarat

Komponen managed-csiprovisioner telah diinstal di kluster ACS.

Catatan

Buka halaman manajemen kluster ACS di Konsol ACS. Di panel navigasi sebelah kiri halaman manajemen kluster, pilih Operations > Add-ons. Di tab Storage, Anda dapat memeriksa apakah managed-csiprovisioner telah diinstal.

Batasan

  • Disk merupakan penyimpanan non-shared dan hanya dapat dipasang ke satu Pod saja.

  • Disk hanya dapat dipasang ke Pod yang berada dalam zona ketersediaan yang sama.

Catatan penggunaan

  • Kami menyarankan memasang disk ke StatefulSet atau Pod mandiri, bukan ke Deployment.

    Catatan

    Karena disk hanya dapat dipasang ke satu Pod, Anda tidak dapat mengonfigurasi volume independen untuk setiap Pod dalam Deployment. Selain itu, strategi upgrade Deployment dapat mencegah Pod baru memasang disk selama restart.

  • Disk yang dibuat secara dinamis dikenai biaya berdasarkan model pay-as-you-go.

  • Jika Anda mengonfigurasi securityContext.fsgroup dalam file YAML aplikasi Anda, ACS menjalankan operasi chmod dan chown setelah pemasangan selesai, yang meningkatkan waktu pemasangan.

    Catatan

    Saat securityContext.fsgroup dikonfigurasi, kepemilikan file dalam volume disesuaikan selama pemasangan. Bergantung pada jumlah file, hal ini dapat meningkatkan waktu startup secara signifikan. Atur fsGroupChangePolicy ke OnRootMismatch agar kepemilikan hanya diubah saat container pertama kali dimulai; upgrade atau rebuild Pod berikutnya tidak terpengaruh. Jika ini tidak memenuhi kebutuhan Anda, gunakan initContainer untuk menerapkan logika izin kustom.

Pasang volume disk

kubectl

Langkah 1: Buat StorageClass

ACS menyediakan StorageClass default bernama alicloud-disk-topology-alltype yang membuat persistent volume (PV) dengan mencoba tipe disk berikut secara berurutan: cloud_essd (ESSD), cloud_ssd (standard SSD), dan cloud_efficiency (ultra disk). Jika default ini tidak memenuhi kebutuhan Anda, buat StorageClass baru seperti berikut.

  1. Hubungkan ke kluster ACS Anda. Untuk informasi lebih lanjut, lihat Dapatkan file kubeconfig kluster dan gunakan kubectl untuk menghubungkan ke kluster dan Gunakan kubectl di Cloud Shell untuk mengelola kluster ACS.

  2. Simpan konten YAML berikut sebagai disk-sc.yaml. Ubah parameter sesuai penjelasan dalam tabel di bawah.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-disk-essd
    provisioner: diskplugin.csi.alibabacloud.com
    parameters:
      type: cloud_essd
      fstype: ext4
      performanceLevel: PL1
    reclaimPolicy: Delete
    volumeBindingMode: WaitForFirstConsumer
    allowVolumeExpansion: true

    Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    parameters.type

    Tipe disk. Nilai yang valid:

    • cloud_essd_entry: ESSD Entry disk

    • cloud_auto: ESSD AutoPL disk

    • cloud_essd (default): ESSD

    • cloud_ssd: standard SSD

    • cloud_efficiency: ultra disk

    Anda dapat menggabungkan tipe-tipe ini. Contoh: type: cloud_efficiency, cloud_ssd, cloud_essd. Sistem akan mencoba setiap tipe secara berurutan hingga disk berhasil dibuat.

    Catatan

    Anda dapat memilih tipe disk berdasarkan kebutuhan penagihan dan performa. Untuk informasi lebih lanjut, lihat Block Storage Pricing dan Performa block storage.

    parameters.fstype

    Tipe sistem file. Default: ext4. Nilai yang valid: ext3, ext4, dan xfs.

    parameters.performanceLevel

    Tingkat performa ESSD. Default: PL1. Nilai yang valid: PL0, PL1, PL2, dan PL3. Untuk informasi lebih lanjut, lihat ESSD.

    provisioner

    Driver penyimpanan. Tetapkan nilai ini ke diskplugin.csi.alibabacloud.com untuk menggunakan plugin CSI disk Alibaba Cloud.

    reclaimPolicy

    Kebijakan reclaim untuk disk. Hanya Delete yang didukung, artinya PV dan disk dasarnya akan dihapus saat persistent volume claim (PVC) dihapus.

    volumeBindingMode

    Mode binding volume. Kami merekomendasikan WaitForFirstConsumer untuk kluster multi-zona.

    • WaitForFirstConsumer: Menunda binding volume. Pod dijadwalkan terlebih dahulu, lalu disk dibuat di zona ketersediaan Pod tersebut.

    • Immediate: Membuat disk sebelum Pod dijadwalkan.

    Penting

    Jika Anda menggunakan daya komputasi ACS dalam kluster ACK dan Pod ACS perlu memasang disk, gunakan nodeSelector atau ResourcePolicy untuk menjadwalkan Pod ke node virtual. Jika Anda menjadwalkan Pod dengan menambahkan label Pod (alibabacloud.com/acs: "true"), StorageClass dengan tipe WaitForFirstConsumer tidak didukung.

    allowVolumeExpansion

    Apakah ekspansi disk otomatis diizinkan.

  3. Buat StorageClass.

    kubectl create -f disk-sc.yaml
  4. Lihat StorageClass.

    kubectl get sc

    Output yang diharapkan:

    NAME                             PROVISIONER                       RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    alicloud-disk-essd               diskplugin.csi.alibabacloud.com   Delete          WaitForFirstConsumer   true                   78s
    alicloud-disk-topology-alltype   diskplugin.csi.alibabacloud.com   Delete          WaitForFirstConsumer   true                   23d
    ......

Langkah 2: Buat PVC

  1. Simpan konten YAML berikut sebagai disk-pvc.yaml.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: disk-pvc
    spec:
      accessModes:
      - ReadWriteOncePod
      volumeMode: Filesystem
      resources:
        requests:
          storage: 20Gi
      storageClassName: alicloud-disk-essd

    Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    accessModes

    Mode akses. Hanya ReadWriteOncePod yang didukung.

    volumeMode

    Mode volume. Nilai yang valid:

    • Filesystem (default): sistem file

    • Block: perangkat blok

    storage

    Kapasitas penyimpanan yang dialokasikan ke Pod, yang menentukan ukuran disk yang akan dibuat.

    storageClassName

    Nama StorageClass yang akan digunakan.

  2. Buat PVC.

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

    kubectl get pvc

    Output yang diharapkan menunjukkan bahwa PVC belum terikat ke PV karena volumeBindingMode diatur ke WaitForFirstConsumer:

    NAME       STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS         VOLUMEATTRIBUTESCLASS   AGE
    disk-pvc   Pending                                      alicloud-disk-essd   <unset>                 7s

Langkah 3: Buat aplikasi dan pasang disk

  1. Simpan konten YAML berikut sebagai disk-test.yaml.

    YAML berikut membuat StatefulSet dengan satu Pod. Pod tersebut meminta penyimpanan melalui PVC bernama disk-pvc dan memasang volume di /data.

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: disk-test
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
            - name: pvc-disk
              mountPath: /data
          volumes:
            - name: pvc-disk
              persistentVolumeClaim:
                claimName: disk-pvc
  2. Buat StatefulSet dan pasang disk.

    kubectl create -f disk-test.yaml
    Penting

    Sistem secara otomatis menyediakan disk pay-as-you-go dan PV yang sesuai berdasarkan konfigurasi PVC dan StorageClass.

  3. Periksa status deployment Pod dalam StatefulSet.

    kubectl get pod | grep disk-test

    Output yang diharapkan menunjukkan satu Pod karena jumlah replika StatefulSet adalah 1.

    disk-test-0   1/1     Running   0          52s
  4. Lihat PVC.

    kubectl get pvc

    Output yang diharapkan menunjukkan bahwa PVC kini terikat ke PV yang dibuat secara otomatis.

    NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS         VOLUMEATTRIBUTESCLASS   AGE
    disk-pvc   Bound    d-uf698s3h14isyj6b****   20Gi       RWOP           alicloud-disk-essd   <unset>                 111s
  5. Periksa path mount untuk memastikan disk telah dipasang.

    kubectl exec disk-test-0 -- df | grep data

    Output yang diharapkan:

    /dev/vdb        20466256      24  20449848   1% /data

Konsol

Langkah 1: Buat StorageClass

ACS menyediakan StorageClass default bernama alicloud-disk-topology-alltype yang membuat persistent volume (PV) dengan mencoba tipe disk berikut secara berurutan: cloud_essd (ESSD), cloud_ssd (standard SSD), dan cloud_efficiency (ultra disk). Jika default ini tidak memenuhi kebutuhan Anda, buat StorageClass baru seperti berikut.

  1. Masuk ke Konsol ACS.

  2. Di halaman Clusters, klik nama kluster untuk membuka halaman manajemen kluster.

  3. Di panel navigasi sebelah kiri halaman manajemen kluster, pilih Volumes > StorageClasses.

  4. Buat StorageClass.

    1. Di halaman StorageClasses, klik Create.

    2. Di kotak dialog yang muncul, konfigurasi parameter lalu klik Create.

      Parameter

      Deskripsi

      Contoh

      Name

      Nama StorageClass. Ikuti persyaratan format yang ditampilkan di layar.

      alicloud-disk-essd

      PV Type

      Pilih Disk.

      Disk

      Parameter

      Parameter default adalah type, yang menentukan tipe disk. Nilai yang valid:

      • cloud_essd_entry: ESSD Entry disk

      • cloud_auto: ESSD AutoPL disk

      • cloud_essd (default): ESSD

      • cloud_ssd: standard SSD

      • cloud_efficiency: ultra disk

      Anda dapat menggabungkan tipe-tipe ini. Contoh: type: cloud_efficiency, cloud_ssd, cloud_essd. Sistem akan mencoba setiap tipe secara berurutan hingga disk berhasil dibuat.

      Catatan

      Anda dapat memilih tipe disk berdasarkan kebutuhan penagihan dan performa. Untuk informasi lebih lanjut, lihat Block Storage Pricing dan Performa block storage.

      Anda dapat menambahkan parameter berikut:

      • fstype

        Tipe sistem file. Default: ext4. Nilai yang valid: ext3, ext4, dan xfs.

      • performanceLevel

        Tingkat performa ESSD. Default: PL1. Nilai yang valid: PL0, PL1, PL2, dan PL3. Untuk informasi lebih lanjut, lihat ESSD.

      type: cloud_essd

      Reclaim Policy

      Kebijakan reclaim untuk disk. Hanya Delete yang didukung, artinya PV dan disk dasarnya akan dihapus saat persistent volume claim (PVC) dihapus.

      Delete

      Binding Mode

      Mode binding volume. Kami merekomendasikan WaitForFirstConsumer untuk kluster multi-zona.

      • WaitForFirstConsumer: Menunda binding volume. Pod dijadwalkan terlebih dahulu, lalu disk dibuat di zona ketersediaan Pod tersebut.

      • Immediate: Membuat disk sebelum Pod dijadwalkan.

      Penting

      Jika Anda menggunakan daya komputasi ACS dalam kluster ACK dan Pod ACS perlu memasang disk, gunakan nodeSelector atau ResourcePolicy untuk menjadwalkan Pod ke node virtual. Jika Anda menjadwalkan Pod dengan menambahkan label Pod (alibabacloud.com/acs: "true"), StorageClass dengan tipe WaitForFirstConsumer tidak didukung.

      WaitForFirstConsumer

Langkah 2: Buat PVC

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

  2. Di halaman Persistent Volume Claims, klik Create.

  3. Di kotak dialog yang muncul, konfigurasi parameter lalu klik Create.

    Parameter

    Deskripsi

    Contoh

    PVC Type

    Pilih Disk.

    Disk

    Name

    Nama PVC. Ikuti persyaratan format yang ditampilkan di layar.

    disk-pvc

    Allocation Mode

    Secara default, Use StorageClass dipilih.

    Use StorageClass

    Existing Storage Class

    Pilih StorageClass yang akan digunakan.

    alicloud-disk-essd

    Capacity

    Kapasitas penyimpanan yang dialokasikan ke Pod, yang menentukan ukuran disk yang akan dibuat.

    20Gi

    Access Mode

    Hanya ReadWriteOncePod yang didukung, artinya volume dapat dipasang sebagai read-write oleh satu Pod saja.

    ReadWriteOncePod

    Setelah PVC dibuat, PVC tersebut muncul di halaman Persistent Volume Claims. Karena mode binding di StorageClass adalah WaitForFirstConsumer, PVC belum terikat ke PV dan statusnya Pending.

Langkah 3: Buat aplikasi dan pasang disk

  1. Di panel navigasi sebelah kiri halaman manajemen kluster, pilih Workloads > StatefulSets.

  2. Di halaman StatefulSets, klik Create from Image.

  3. Konfigurasi parameter untuk StatefulSet, lalu klik Create.

    Atur parameter berikut dan gunakan nilai default untuk sisanya. Untuk informasi lebih lanjut, lihat Buat workload StatefulSet.

    Bagian konfigurasi

    Parameter

    Deskripsi

    Contoh

    Basic Information

    Application Name

    Nama StatefulSet. Ikuti persyaratan format yang ditampilkan di layar.

    disk-test

    Replicas:

    Jumlah replika untuk StatefulSet.

    1

    Container

    Image Name

    Alamat gambar kontainer untuk aplikasi.

    registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest

    Required Resources

    Sumber daya vCPU dan memori yang diminta.

    0.25 vCPU, 0.5 GiB

    Volume

    Klik Add PVC dan konfigurasi parameter.

    • Mount Source: Pilih PVC yang telah Anda buat.

    • Container Path: Masukkan path dalam kontainer untuk memasang disk.

    • Mount Source: disk-pvc

    • Container Path: /data

  4. Periksa status deployment aplikasi.

    1. Di halaman StatefulSets, klik nama aplikasi.

    2. Di tab Pods, pastikan Pod berjalan dengan baik (statusnya Running).

  5. Periksa volume dan klaimnya.

    • Di halaman Persistent Volumes, Anda akan menemukan PV yang dibuat secara otomatis. Nama PV tersebut sesuai dengan ID disk.

    • Di halaman Persistent Volume Claims, PVC kini terikat ke PV, dan statusnya Bound.

Verifikasi persistensi data disk

StatefulSet yang dibuat di atas berisi satu Pod dengan disk yang dipasang. Saat Pod dihapus, Pod baru secara otomatis dibuat dan memasang kembali disk yang sama, sehingga data tetap dipertahankan. Ikuti langkah-langkah berikut untuk memverifikasi persistensi data.

  1. Lihat data di disk pada path mount.

    kubectl exec disk-test-0 -- ls /data

    Output yang diharapkan:

    lost+found
  2. Buat file uji di disk.

    kubectl exec disk-test-0 -- touch /data/test
  3. Hapus Pod.

    kubectl delete pod disk-test-0
    Catatan

    Setelah Anda menghapus Pod dalam StatefulSet, sistem secara otomatis membuat Pod baru.

  4. Lihat Pod yang baru dibuat.

    kubectl get pod

    Output menunjukkan bahwa Pod baru memiliki nama yang sama dengan Pod yang dihapus, yang merupakan perilaku standar StatefulSet.

    NAME          READY   STATUS    RESTARTS   AGE
    disk-test-0   1/1     Running   0          27s
  5. Verifikasi bahwa Pod baru telah memasang kembali disk dan datanya tetap ada.

    kubectl exec disk-test-0 -- ls /data

    Output menunjukkan bahwa file test yang ditulis sebelumnya masih ada di disk.

    lost+found  test