全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan Disk ENS

更新时间:Jul 06, 2025

Disk Edge Node Service (ENS) digunakan pada node ENS dalam klaster ACK Edge. Anda dapat membuat volume disk ENS yang di-provision secara statis dan dinamis menggunakan Plugin Antarmuka Penyimpanan Kontainer (CSI) di klaster ACK Edge. Topik ini menjelaskan cara memasang volume disk ENS yang di-provision secara statis dan dinamis yang dibuat menggunakan plugin CSI.

Prasyarat

Catatan penggunaan

  • Selama penyebaran aplikasi, disarankan untuk menggunakan StorageClass agar Persistent Volume (PV) dibuat secara otomatis untuk membeli disk. Jika Anda telah membeli disk, Anda dapat menggunakan volume disk yang di-provision secara statis.

  • Saat membeli disk, ukuran disk yang ditentukan tidak boleh melebihi rentang kapasitas yang sesuai untuk disk individu. Untuk informasi lebih lanjut, lihat Volume disk.

  • Saat sistem merecreate pod, disk asli yang dipasang ke pod akan dimount ulang. Jika sistem gagal menjadwalkan pod ke zona aslinya selama rekreasi, pod tetap dalam status Pending.

  • Provisioning dinamis hanya mendukung disk berbayar sesuai pemakaian. Untuk informasi lebih lanjut tentang item yang dapat ditagih dari disk, lihat Penagihan perangkat penyimpanan blok. Untuk informasi lebih lanjut tentang harga disk, kunjungi halaman produk Elastic Compute Service.

  • Disk ENS yang disediakan oleh tim penyimpanan Alibaba Cloud tidak dapat dibagi. Sebuah disk hanya dapat dipasang ke satu pod.

  • Di klaster ACK Edge, disk ENS hanya dapat dipasang ke node ENS yang berada di wilayah yang sama dengan disk ENS tersebut.

  • Anda tidak dapat mengambil atau menghapus disk ENS. Operasi terkait dapat dilakukan di .

Gunakan volume disk ENS yang di-provision secara dinamis

Step 1: Create a StorageClass

Untuk klaster di wilayah berbeda, Anda dapat menggunakan salah satu metode berikut untuk membuat StorageClass:

Method 1: Create a StorageClass in WaitForFirstConsumer mode

Mode WaitForFirstConsumer dapat menyelesaikan masalah beberapa wilayah yang tersedia di klaster ACK Edge. Dalam contoh berikut, StorageClass dibuat menggunakan file storage-class-csi-topology.yaml.

  1. Buat file bernama storage-class-topology.yaml dan salin konten berikut ke file tersebut:

    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

    Parameter

    Deskripsi

    name

    Nama StorageClass.

    provisioner

    Tetapkan nilai menjadi ensplugin.csi.alibabacloud.com. Gunakan plugin provisioner disk ENS untuk membuat StorageClass.

    type

    Tipe disk.

    regionId

    Opsional. Wilayah tempat disk dibuat secara otomatis.

    reclaimPolicy

    Kebijakan reclaim disk. Hanya Retain yang didukung. Saat Anda menghapus persistent volume claim (PVC), PV dan data disk dipertahankan dan harus dihapus secara manual.

    volumeBindingMode

    Mode binding disk. Nilai default: Immediate. Anda juga dapat menetapkan parameter ini ke WaitForFirstConsumer.

    • Immediate: membuat disk saat PVC yang menggunakan StorageClass dibuat. Dengan cara ini, disk dibuat dan PV di-provision sebelum Anda membuat pod yang menggunakan disk.

    • WaitForFirstConsumer: menunda binding dan provisioning PV hingga pod yang menggunakan PVC dibuat. Setelah pod dijadwalkan ke node, disk dibuat di zona tempat node diterapkan dan di-provision sebagai PV.

  2. Jalankan perintah berikut untuk membuat StorageClass:

    kubectl apply -f storage-class-topology.yaml
  3. Lihat StorageClass yang dibuat.

    1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Di halaman Clusters, temukan klaster yang diinginkan dan klik namanya. Di panel kiri, pilih Volumes > StorageClasses.

    Di halaman StorageClasses, Anda dapat melihat StorageClass yang dibuat.

Method 2: Create a StorageClass by creating a disk and then creating a pod

  1. Buat file bernama storage-class-csi.yaml dan salin konten berikut ke file tersebut:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-ens-disk-available
    provisioner: ensplugin.csi.alibabacloud.com
    parameters:
      type: available
      regionId: xxx
    reclaimPolicy: Retain
    allowVolumeExpansion: false
    volumeBindingMode: Immediate
  2. Jalankan perintah berikut untuk membuat StorageClass:

    kubectl apply -f storage-class-csi.yaml
  3. Lihat StorageClass yang dibuat.

    1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Di halaman Clusters, temukan klaster yang diinginkan dan klik namanya. Di panel kiri, pilih Volumes > StorageClasses.

    Di halaman StorageClasses, Anda dapat melihat StorageClass yang dibuat.

Step 2: Create a PVC

  1. Buat file bernama pvc-ssd.yaml dan salin konten berikut ke file tersebut:

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

    kubectl create -f pvc-ssd.yaml
  3. Lihat PVC yang dibuat.

    Di panel navigasi kiri halaman detail, pilih Volumes > Persistent Volume Claims. Di halaman Persistent Volume Claims, Anda dapat melihat PVC yang dibuat.

Step 3: Create an application

  1. Buat file bernama pvc-dynamic.yaml dan salin konten berikut ke file tersebut:

    Gunakan template berikut untuk membuat aplikasi bernama nginx-dynamic dan mount PVC ke aplikasi.

    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
          volumes:
            - name: pvc-disk
              persistentVolumeClaim:
                claimName: disk-pvc

    Parameter

    Deskripsi

    mountPath

    Path tempat disk dimount.

    claimName

    Nama PVC yang dimount ke aplikasi.

  2. Jalankan perintah berikut untuk membuat aplikasi dan mount PVC ke aplikasi:

    kubectl create -f pvc-dynamic.yaml
  3. Lihat aplikasi yang dibuat.

    Di panel navigasi kiri halaman detail, pilih Workloads > StatefulSets. Di halaman StatefulSets, Anda dapat menemukan aplikasi yang dibuat.

Gunakan volume disk ENS yang di-provision secara statis

Step 1: Create a PV

  1. Buat file bernama pv-static.yaml dan salin konten berikut ke file tersebut:

    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>"
      nodeAffinity:
        required:
          nodeSelectorTerms:
          - matchExpressions:
            - key: topology.ensplugin.csi.alibabacloud.com/region
              operator: In
              values:
              - "<your-node-region-id>"     # ID wilayah node ENS. Untuk melihat ID wilayah node ENS, lihat parameter topology.ensplugin.csi.alibabacloud.com/region di label node ENS.

    Parameter

    Deskripsi

    name

    Nama PV.

    labels

    Label yang ingin Anda tambahkan ke PV.

    storage

    Penyimpanan yang tersedia dari cloud disk.

    accessModes

    Mode akses PV.

    persistentVolumeReclaimPolicy

    Kebijakan reclaim PV.

    driver

    Tipe driver. Nilai ensplugin.csi.alibabacloud.com menentukan bahwa disk ENS di plugin CSI digunakan.

    volumeHandle

    ID cloud disk yang terkait dengan PV.

    nodeAffinity

    Informasi tentang zona tempat PV dan PVC berada.

    Anda dapat mengonfigurasi parameter ini untuk menentukan zona tempat pod yang menggunakan PV dan PVC dijadwalkan.

  2. Jalankan perintah berikut untuk membuat PV:

    kubectl create -f pv-static.yaml
  3. Lihat PV yang Anda buat.

    1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Di halaman Clusters, temukan klaster yang diinginkan dan klik namanya. Di panel kiri, pilih Volumes > Persistent Volumes.

    Di halaman Persistent Volumes, Anda dapat melihat PV yang dibuat.

Step 2: Create a PVC

  1. Buat file bernama pvc-static.yaml dan salin konten berikut ke file tersebut:

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

    Parameter

    Deskripsi

    name

    Nama PVC.

    accessModes

    Mode akses PVC.

    storage

    Kapasitas yang diklaim oleh PVC. Kapasitas yang diklaim tidak boleh melebihi kapasitas PV yang terikat pada PVC.

    matchLabels

    Label yang digunakan untuk memilih dan mengikat PV ke PVC. Label harus sama dengan PV yang akan diikat ke PVC.

  2. Jalankan perintah berikut untuk membuat PVC:

    kubectl create -f pvc-static.yaml
  3. Lihat PVC yang dibuat.

    Di panel navigasi kiri halaman detail, pilih Volumes > Persistent Volume Claims. Di halaman Persistent Volume Claims, Anda dapat melihat PVC yang dibuat.

Step 3: Create an application

Dalam contoh ini, sebuah aplikasi web dibuat dan dipasang dengan PVC yang Anda buat.

  1. Buat file bernama web.yaml dan salin konten berikut ke file tersebut:

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: web
    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: /data
          volumes:
            - name: pvc-disk
              persistentVolumeClaim:
                claimName: csi-pvc

    Parameter

    Deskripsi

    mountPath

    Path tempat disk dimount.

    claimName

    Nama PVC yang dimount ke aplikasi.

  2. Jalankan perintah berikut untuk membuat aplikasi yang dimount dengan volume disk ENS yang di-provision secara statis menggunakan PVC:

    kubectl apply -f web.yaml
  3. Di panel navigasi kiri halaman detail, pilih Workloads > StatefulSets.

    Di halaman StatefulSets, Anda dapat melihat aplikasi web dan aplikasi dapat dimulai sesuai harapan. Ini menunjukkan bahwa disk ENS telah dimount.