All Products
Search
Document Center

Container Service for Kubernetes:Gunakan disk ENS

Last Updated:Mar 27, 2026

Disk Edge Node Service (ENS) menyediakan penyimpanan blok untuk node ENS di kluster ACK Edge. Dengan menggunakan Container Storage Interface (CSI) driver, Anda dapat memasang volume disk ENS melalui dua pendekatan: provisioning dinamis, di mana kluster secara otomatis membuat disk saat PersistentVolumeClaim (PVC) dibuat; dan provisioning statis, di mana Anda secara manual mengikat disk yang sudah ada ke PersistentVolume (PV).

Prasyarat

Sebelum memulai, pastikan Anda telah:

Pertimbangan

Batasan ketat:

  • Disk ENS tidak dapat dibagikan. Satu disk hanya dapat dipasang ke satu Pod dalam satu waktu.

  • Disk ENS hanya dapat dipasang ke node ENS yang berada di wilayah yang sama dengan disk tersebut.

  • Kebijakan reclaim yang didukung hanyalah Retain. Saat Anda menghapus PVC, PV dan data disk tetap dipertahankan dan harus dihapus secara manual di Konsol Edge Node Service.

  • Saat Pod dibuat ulang, sistem memasang kembali disk aslinya. Jika Pod tidak dapat dijadwalkan ke zona asalnya, statusnya tetap Pending.

  • Provisioning dinamis hanya mendukung disk dengan model pay-as-you-go. Untuk detail penagihan, lihat Ikhtisar penagihan.Untuk informasi lebih lanjut tentang penagihan, lihat Penagihan penyimpanan blok. Untuk detail harga, lihat halaman produk ECS.

  • Ukuran disk yang Anda tentukan harus berada dalam rentang kapasitas untuk tipe disk tersebut. Lihat Tipe disk.

Cara kerja

Provisioning dinamis:

  1. Anda membuat StorageClass dengan provisioner CSI ENS dan PVC yang mereferensinya.

  2. Saat Pod dijadwalkan, driver CSI membuat disk ENS di zona tempat node berada.

  3. Driver CSI menyediakan PV dan mengikatnya ke PVC.

  4. Disk disambungkan ke node dan dipasang ke dalam Pod.

Provisioning statis:

  1. Anda membuat PV yang mereferensi ID disk ENS yang sudah ada.

  2. Anda membuat PVC dengan pemilih label yang sesuai dengan PV tersebut.

  3. Kubernetes mengikat PVC ke PV.

  4. Anda menerapkan workload yang mereferensi PVC tersebut, dan disk dipasang ke dalam Pod.

Gunakan provisioning dinamis

Provisioning dinamis mengotomatiskan pembuatan disk dan pengikatan PV. Gunakan StorageClass untuk menyediakan disk ENS sesuai permintaan.

Langkah 1: Buat StorageClass

CSI ENS mendukung dua mode pengikatan volume. Pilih salah satu berdasarkan penerapan Anda:

Mode pengikatan Perilaku Gunakan saat
WaitForFirstConsumer (direkomendasikan) Menunda pembuatan disk hingga Pod dijadwalkan; membuat disk di zona Pod tersebut Kluster Anda mencakup beberapa wilayah
Immediate Membuat disk segera saat PVC dibuat Kluster Anda berada di satu wilayah dan Anda menentukan regionId

Opsi 1: WaitForFirstConsumer (direkomendasikan)

  1. Buat file bernama storage-class-topology.yaml dengan konten berikut:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-ens-disk-available
    provisioner: ensplugin.csi.alibabacloud.com
    parameters:
      type: available
      fsType: ext4
    volumeBindingMode: WaitForFirstConsumer
    reclaimPolicy: Retain
    allowVolumeExpansion: false
  2. Terapkan StorageClass:

    kubectl apply -f storage-class-topology.yaml
  3. Verifikasi StorageClass telah dibuat:

    kubectl get storageclass alicloud-ens-disk-available

Opsi 2: Immediate

  1. Buat file bernama storage-class-csi.yaml dengan konten berikut:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-ens-disk-available
    provisioner: ensplugin.csi.alibabacloud.com
    parameters:
      type: available
      regionId: <your-region-id>
    reclaimPolicy: Retain
    allowVolumeExpansion: false
    volumeBindingMode: Immediate
  2. Terapkan StorageClass:

    kubectl apply -f storage-class-csi.yaml
  3. Verifikasi StorageClass telah dibuat:

    kubectl get storageclass alicloud-ens-disk-available

Parameter StorageClass:

Parameter Nilai Bawaan Deskripsi
provisioner ensplugin.csi.alibabacloud.com Identifikasi driver CSI ENS. Harus diatur ke nilai ini.
type available Tipe disk yang akan disediakan.
fsType ext4 ext4 Tipe sistem file yang dibuat pada disk.
regionId ID wilayah ENS yang valid Opsional. Wilayah tempat disk dibuat secara otomatis.
reclaimPolicy Retain Retain Kebijakan reclaim disk. Hanya Retain yang didukung.
volumeBindingMode WaitForFirstConsumer, Immediate Immediate Mengontrol kapan pembuatan disk dan pengikatan PV terjadi.
allowVolumeExpansion false false Ekspansi volume tidak didukung.

Langkah 2: Buat PVC

  1. Buat file bernama pvc-dynamic.yaml dengan konten berikut:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: disk-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      volumeMode: Filesystem
      resources:
        requests:
          storage: 25Gi
      storageClassName: alicloud-ens-disk-available
  2. Terapkan PVC:

    kubectl create -f pvc-dynamic.yaml
  3. Verifikasi status PVC:

    kubectl get pvc disk-pvc

    Jika Anda menggunakan WaitForFirstConsumer, status PVC tetap Pending hingga Pod yang mereferensinya dijadwalkan. Ini merupakan perilaku yang diharapkan.

Langkah 3: Terapkan workload

  1. Buat file bernama pvc-dynamic-workload.yaml dengan konten berikut:

    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: /tmp
          volumes:
            - name: pvc-disk
              persistentVolumeClaim:
                claimName: disk-pvc
    Parameter Deskripsi
    mountPath Jalur di dalam kontainer tempat disk dipasang.
    claimName Nama PVC yang akan dipasang. Harus sesuai dengan PVC yang dibuat pada langkah sebelumnya.
  2. Terapkan StatefulSet:

    kubectl create -f pvc-dynamic-workload.yaml
  3. Verifikasi Pod sedang berjalan dan PVC telah terikat:

    kubectl get pods -l app=nginx
    kubectl get pvc disk-pvc

    Status PVC berubah menjadi Bound setelah Pod dijadwalkan dan disk disediakan. Penjadwalan Pod mungkin memerlukan beberapa menit.

Gunakan provisioning statis

Provisioning statis memungkinkan Anda memasang disk ENS yang sudah ada ke dalam workload Anda. Gunakan pendekatan ini jika Anda telah membuat dan mengonfigurasi disk sebelumnya.

Langkah 1: Buat PV

  1. Buat file bernama pv-static.yaml dengan konten berikut:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: csi-pv
      labels:
        alicloud-pvname: static-disk-pv
    spec:
      capacity:
        storage: 25Gi
      accessModes:
        - ReadWriteOnce
      persistentVolumeReclaimPolicy: Retain
      csi:
        driver: ensplugin.csi.alibabacloud.com
        volumeHandle: "<your-disk-id>"    # Ganti dengan ID disk ENS Anda
      nodeAffinity:
        required:
          nodeSelectorTerms:
          - matchExpressions:
            - key: topology.ensplugin.csi.alibabacloud.com/region
              operator: In
              values:
              - "<your-node-region-id>"  # Jalankan: kubectl get node <node-name> --show-labels
    Parameter Deskripsi
    volumeHandle ID disk dari disk ENS yang sudah ada. Temukan nilai ini di Konsol Edge Node Service.
    nodeAffinity Membatasi PV hanya untuk node di wilayah tertentu. Atur ke wilayah disk ENS tersebut.
    topology.ensplugin.csi.alibabacloud.com/region ID wilayah node ENS. Jalankan kubectl get node <node-name> --show-labels untuk menemukan nilai ini.
  2. Terapkan PV:

    kubectl create -f pv-static.yaml
  3. Verifikasi PV telah dibuat:

    kubectl get pv csi-pv

Langkah 2: Buat PVC

  1. Buat file bernama pvc-static.yaml dengan konten berikut:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: csi-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 25Gi
      storageClassName: ""
      selector:
        matchLabels:
          alicloud-pvname: static-disk-pv

    storageClassName: "" memberi tahu Kubernetes untuk mengikat ke PV yang dibuat secara manual, bukan menggunakan provisioning dinamis. selector.matchLabels harus sesuai dengan label pada PV. Kapasitas yang diminta (25Gi) tidak boleh melebihi kapasitas PV.

  2. Terapkan PVC:

    kubectl create -f pvc-static.yaml
  3. Verifikasi PVC telah terikat ke PV:

    kubectl get pvc csi-pvc

    Status PVC seharusnya menunjukkan Bound.

Langkah 3: Terapkan workload

  1. Buat file bernama web-static.yaml dengan konten berikut:

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: nginx-static
    spec:
      selector:
        matchLabels:
          app: nginx
      serviceName: "nginx"
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            ports:
            - containerPort: 80
              name: web
            volumeMounts:
            - name: pvc-disk
              mountPath: /tmp
          volumes:
            - name: pvc-disk
              persistentVolumeClaim:
                claimName: csi-pvc
  2. Terapkan StatefulSet:

    kubectl apply -f web-static.yaml
  3. Verifikasi Pod sedang berjalan:

    kubectl get pods -l app=nginx
    kubectl get pvc csi-pvc

    Saat Pod mencapai status Running dan PVC menunjukkan status Bound, disk ENS berhasil dipasang.

Langkah selanjutnya

  • Kelola komponen — Perbarui atau uninstal komponen csi-ens-plugin dan csi-ens-provisioner.

  • Tipe disk — Tinjau tipe disk ENS yang tersedia dan rentang kapasitasnya.

  • Ikhtisar penagihan — Pahami penagihan disk ENS untuk volume yang disediakan secara dinamis.