全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan disk cloud yang disediakan secara dinamis untuk penyimpanan persisten - Flexvolume

更新时间:Feb 26, 2026

Jika sebuah container mati, layanan stateful berisiko kehilangan data atau mengalami ketidakandalan data. Penyimpanan persisten mencegah masalah ini. Topik ini menjelaskan cara menggunakan disk cloud yang disediakan secara dinamis untuk menyediakan penyimpanan persisten.

Informasi latar belakang

Kasus penggunaan disk cloud yang disediakan secara dinamis:

Jika Anda tidak memiliki disk cloud, sistem akan secara otomatis menyediakan satu saat Anda melakukan penerapan aplikasi.

Untuk menggunakan disk cloud yang disediakan secara dinamis:

  1. Buat klaim volume persisten (PVC) secara manual dan deklarasikan StorageClass di dalam PVC tersebut.

  2. Lakukan penerapan aplikasi. Sistem kemudian secara otomatis membuat volume persisten (PV) berdasarkan StorageClass tersebut.

Prasyarat

Plugin Provisioner

Container Service for Kubernetes (ACK) secara otomatis menginstal plugin Provisioner saat Anda membuat kluster.

Buat StorageClass

Alibaba Cloud Container Service for Kubernetes (ACK) membuat empat StorageClass default selama inisialisasi sistem. StorageClass ini menggunakan parameter default dan hanya berlaku untuk kluster single-zone. Untuk kluster multi-zona, Anda harus membuat StorageClass sendiri. Keempat StorageClass default tersebut adalah:

  • alicloud-disk-common: secara otomatis membuat disk dasar.

  • alicloud-disk-efficiency: secara otomatis membuat disk ultra.

  • alicloud-disk-ssd: secara otomatis membuat SSD standar.

  • alicloud-disk-available: Ini adalah opsi ketersediaan tinggi (HA). Pertama-tama mencoba membuat SSD standar. Jika sumber daya SSD standar habis di zona tersebut, maka mencoba membuat disk ultra.

  1. Buat file storageclass.yaml.

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: alicloud-disk-ssd-hangzhou-b
    provisioner: alicloud/disk
    reclaimPolicy: Retain
    parameters:
      type: cloud_ssd
      regionId: cn-hangzhou
      zoneId: cn-hangzhou-b
      fstype: "ext4"
      readonly: "false"

    Parameter

    Deskripsi

    provisioner

    Atur ke `alicloud/disk` untuk secara otomatis membuat disk Alibaba Cloud menggunakan plugin provisioner.

    reclaimPolicy

    Kebijakan reclaim untuk disk mendukung Delete dan Retain, dengan Delete sebagai nilai default.

    Catatan

    Jika dikonfigurasi sebagai Delete, menghapus PVC juga akan menghapus disk, dan data pada disk tersebut tidak dapat dipulihkan.

    type

    Tipe disk cloud yang dibuat secara otomatis, mendukung cloud, cloud_efficiency, cloud_ssd, dan available.

    regionId

    (Opsional) ID wilayah tempat disk cloud dibuat secara otomatis. Harus sama dengan wilayah kluster.

    zoneId

    (Opsional) ID zona tempat disk cloud dibuat secara otomatis.

    • Untuk kluster single-zone, gunakan zona yang sama dengan kluster.

    • Untuk kluster multi-zona, konfigurasikan beberapa nilai `zoneId`, seperti:

      zoneid: cn-hangzhou-a,cn-hangzhou-b,cn-hangzhou-c

    fstype

    (Opsional) Sistem file yang digunakan untuk pembuatan otomatis disk cloud, dengan nilai default ext4.

    readonly

    (Opsional) Apakah disk cloud yang dibuat secara otomatis dipasang dengan izin read-only. Nilai yang valid: true — disk cloud memiliki izin read-only; false — disk cloud memiliki izin read-write. Nilai default: false.

    encrypted

    (Opsional) Apakah disk yang dibuat secara otomatis dienkripsi. Menerima true: dienkripsi, false: tidak dienkripsi. Nilai default: false.

  2. Jalankan perintah berikut untuk membuat StorageClass:

    kubectl create -f storageclass.yaml

Buat PVC

  1. Buat file pvc-ssd.yaml.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: disk-ssd
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: alicloud-disk-ssd-hangzhou-b
      resources:
        requests:
          storage: 20Gi
  2. Jalankan perintah berikut untuk membuat PVC:

    kubectl create -f pvc-ssd.yaml

Pada halaman Cluster, klik Volumes > Persistent Volume Claims di panel navigasi sebelah kiri. Anda dapat melihat PVC yang telah dibuat beserta volume persisten (PV) yang terikat dengannya. StorageClass dari PVC tersebut adalah alicloud-disk-ssd-hangzhou-b.

Buat Aplikasi

  1. Buat file pvc-dynamic.yaml.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-dynamic
      labels:
        app: nginx
    spec:
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            volumeMounts:
              - name: disk-pvc
                mountPath: "/data"
          volumes:
            - name: disk-pvc
              persistentVolumeClaim:
                claimName: disk-ssd
  2. Jalankan perintah berikut untuk membuat deployment:

    kubectl create -f nginx-dynamic.yaml

Pada halaman Cluster, di panel navigasi sebelah kiri, klik Workloads > Deployments. Kemudian, lihat deployment yang telah Anda buat.

Penyimpanan persisten untuk disk cloud yang disediakan secara dinamis

  1. Jalankan perintah berikut untuk melihat nama pod dari deployment tersebut:

    kubectl get pod | grep dynamic

    Output yang diharapkan:

    nginx-dynamic-5c74594ccb-zl9pf     2/2     Running     0          3m
  2. Jalankan perintah berikut untuk memeriksa apakah disk cloud baru telah dipasang ke path /data:

    kubectl exec nginx-dynamic-5c74594ccb-zl9pf -- df | grep data

    Output yang diharapkan:

    /dev/vdh        20511312    45080  20449848   1% /data
  3. Jalankan perintah berikut untuk melihat file-file di path /data:

    kubectl exec nginx-dynamic-5c74594ccb-zl9pf -- ls /data

    Output yang diharapkan:

    lost+found
  4. Jalankan perintah berikut untuk membuat file dynamic di path /data:

    kubectl exec nginx-dynamic-5c74594ccb-zl9pf -- touch /data/dynamic
  5. Jalankan perintah berikut untuk melihat file-file di path /data:

    kubectl exec nginx-dynamic-5c74594ccb-zl9pf -- ls /data

    Output yang diharapkan:

    dynamic
    lost+found
  6. Jalankan perintah berikut untuk menghapus pod bernama nginx-dynamic-5c74594ccb-zl9pf:

    kubectl delete pod nginx-dynamic-5c74594ccb-zl9pf

    Output yang diharapkan:

    pod "nginx-dynamic-5c74594ccb-zl9pf" deleted
  7. Di jendela terminal lain, jalankan perintah berikut untuk memantau proses penghapusan dan pembuatan ulang pod:

    kubectl get pod -w -l app=nginx

    Output yang diharapkan:

    NAME                               READY   STATUS    RESTARTS   AGE
    nginx-dynamic-5c74594ccb-zl9pf     2/2     Running   0          6m48s
    nginx-dynamic-5c74594ccb-zl9pf   2/2   Terminating   0     7m32s
    nginx-dynamic-5c74594ccb-45sd4   0/2   Pending   0     0s
    nginx-dynamic-5c74594ccb-45sd4   0/2   Pending   0     0s
    nginx-dynamic-5c74594ccb-45sd4   0/2   Init:0/1   0     0s
    nginx-dynamic-5c74594ccb-zl9pf   0/2   Terminating   0     7m32s
    nginx-dynamic-5c74594ccb-zl9pf   0/2   Terminating   0     7m33s
    nginx-dynamic-5c74594ccb-zl9pf   0/2   Terminating   0     7m33s
    nginx-dynamic-5c74594ccb-45sd4   0/2   PodInitializing   0     5s
    nginx-dynamic-5c74594ccb-45sd4   2/2   Running   0     22s
  8. Jalankan perintah berikut untuk melihat nama pod yang dibuat ulang:

    kubectl get pod 

    Output yang diharapkan:

    NAME                               READY   STATUS      RESTARTS   AGE
    nginx-dynamic-5c74594ccb-45sd4     2/2     Running     0          2m
  9. Jalankan perintah berikut untuk melihat file-file di path /data. File dynamic yang Anda buat tidak dihapus. Hal ini menunjukkan bahwa data pada disk cloud yang disediakan secara dinamis bersifat persisten.

    kubectl exec nginx-dynamic-5c74594ccb-45sd4 -- ls /data

    Output yang diharapkan:

    dynamic
    lost+found