All Products
Search
Document Center

Container Service for Kubernetes:Troubleshoot masalah penyimpanan

Last Updated:Mar 07, 2026

Jika sebuah Pod mengalami status abnormal saat memasang atau menggunakan persistent volume (PV), Anda dapat mengidentifikasi dan menyelesaikan masalah tersebut dengan memeriksa status serta event Pod dan PersistentVolumeClaim (PVC)-nya, serta status komponen Container Storage Interface (CSI). Topik ini menjelaskan cara melakukan troubleshooting masalah penyimpanan dan menyediakan informasi mengenai masalah penyimpanan umum.

流程

1. Periksa apakah abnormalitas Pod disebabkan oleh masalah penyimpanan

Periksa event Pod atau PVC untuk memastikan bahwa masalah penyimpanan mencegah Pod berjalan.

  1. Lihat event dari Pod yang abnormal.

    kubectl describe pod <pod-name>
    • Jika sebuah event menunjukkan adanya masalah penyimpanan, lanjutkan dengan langkah troubleshooting dalam topik ini. Misalnya, event FailedScheduling pada contoh output berikut memiliki Message yang menunjukkan kegagalan penjadwalan karena ketidaksesuaian antara volume dan node.

      Events:
        Type     Reason            Age    From               Message
        ----     ------            ----   ----               -------
        Warning  FailedScheduling  4m37s  default-scheduler  0/1 nodes are available: 1 node(s) had volume node affinity conflict. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling.,
    • Jika sebuah event, seperti event SuccessfulAttachVolume pada contoh output, menunjukkan bahwa volume berhasil disambungkan tetapi Pod tidak berjalan (misalnya, berada dalam status CrashLoopBackOff), maka masalah tersebut tidak terkait penyimpanan. Periksa event untuk masalah lain, atau submit a ticket untuk bantuan.

      Events:
        Type    Reason                  Age   From                     Message
        ----    ------                  ----  ----                     -------
        Normal  Scheduled               97s   default-scheduler        Successfully assigned default/disk-test-0 to cn-shanghai.192.168.5.2
        Normal  SuccessfulAttachVolume  97s   attachdetach-controller  AttachVolume.Attach succeeded for volume "d-uf6b8s2l5ypf48*****"
  2. Jika Anda tidak melihat event terkait penyimpanan untuk Pod tersebut, lihat semua event.

    kubectl get events
    • Jika sebuah event menunjukkan adanya masalah penyimpanan, lanjutkan dengan langkah troubleshooting dalam topik ini. Misalnya, event FailedBinding pada contoh output menunjukkan bahwa PVC gagal di-bind ke PV.

      LAST SEEN   TYPE      REASON                 OBJECT                                                  MESSAGE
      2m56s       Normal    FailedBinding          persistentvolumeclaim/data-my-release-mariadb-0         no persistent volumes available for this claim and no storage class is set
      41s         Normal    ExternalProvisioning   persistentvolumeclaim/pvc-nas-dynamic-create-subpath8   waiting for a volume to be created, either by external provisioner "nasplugin.csi.alibabacloud.com" or manually created by system administrator
      3m31s       Normal    Provisioning           persistentvolumeclaim/pvc-nas-dynamic-create-subpath8   External provisioner is provisioning volume for claim "default/pvc-nas-dynamic-create-subpath8"
    • Jika tidak ada event terkait penyimpanan, periksa event untuk masalah lain, atau submit a ticket untuk bantuan.

2. Periksa apakah komponen penyimpanan berfungsi normal

Catatan

Jika kluster Anda saat ini menggunakan komponen FlexVolume, kami menyarankan agar Anda segera migrasi ke komponen CSI karena FlexVolume telah ditinggalkan. Untuk informasi selengkapnya, lihat Migrate from FlexVolume to CSI.

  1. Periksa apakah komponen penyimpanan CSI berfungsi dengan benar.

    kubectl get pod -n kube-system |grep csi

    Output contoh berikut dikembalikan. Jika sebuah Pod tidak berada dalam status `Running`, jalankan kubectl describe pods <pod-name> -n kube-system untuk melihat event Pod dan alasan container berhenti.

    Catatan

    Komponen penyimpanan CSI mencakup csi-plugin dan csi-provisioner. Secara default, versi managed dari csi-provisioner diinstal. Komponen managed dipelihara oleh Alibaba Cloud. Anda tidak dapat melihat Pod untuk komponen tersebut di kluster Anda.

    NAME                     READY   STATUS        RESTARTS   AGE
    csi-plugin-bpz28         4/4     Running       0          3d
    csi-plugin-h2tdg         4/4     Running       0          3d
    csi-plugin-qpnm4         4/4     Running       0          3d
    csi-plugin-wczgm         4/4     Running       0          3d
  2. Periksa apakah komponen penyimpanan CSI menggunakan versi terbaru.

    kubectl get ds csi-plugin -n kube-system -o yaml |grep image

    Anda dapat menemukan versi gambar di bidang image pada informasi yang dikembalikan. Berikut adalah contoh output:

    image: registry-cn-shanghai-vpc.ack.aliyuncs.com/acs/csi-plugin:v1.33.1-67e8986-aliyun

    Jika komponen penyimpanan bukan versi terbaru, upgrade the CSI components. Untuk informasi selengkapnya mengenai versi terbaru komponen penyimpanan, lihat csi-plugin.

    Catatan

    Anda juga dapat membuka halaman Add-ons di konsol, temukan komponen csi-plugin dan csi-provisioner, lalu periksa versi dan lakukan upgrade.

  3. Periksa file YAML PV, PVC, dan StorageClass untuk memastikan konfigurasi driver (driver atau bidang provisioner) diatur untuk menggunakan komponen penyimpanan CSI dan konsisten dengan komponen penyimpanan yang digunakan oleh kluster Anda.

3. Periksa apakah status PVC adalah Bound

  1. Lihat status PVC.

    kubectl get pvc
  2. Jika PVC tidak berada dalam status `Bound`, lakukan troubleshooting dan selesaikan masalah sebagai berikut.

    Penyebab

    • Static: Selector PVC dan PV tidak memenuhi kondisi binding. Misalnya, konfigurasi selector di PVC tidak sesuai dengan konfigurasi di PV, nama StorageClass tidak konsisten, atau status PV adalah `Released`.

    • Dynamic: Terjadi masalah pada komponen csi-provisioner.

    Solusi

4. Periksa apakah status Pod adalah Running

  1. Lihat status Pod.

    kubectl get pod
  2. Jika PVC berada dalam status `Bound` tetapi Pod tidak berada dalam status `Running`, lakukan troubleshooting dan selesaikan masalah berdasarkan tipe persistent volume sebagai berikut.

    Cloud disk persistent volumes

    Penting

    Saat menggunakan persistent volume cloud disk, pastikan tipe instans ECS dari node tempat Pod dijadwalkan mendukung penyambungan tipe cloud disk yang ditentukan, dan bahwa Pod serta cloud disk berada dalam wilayah dan zona yang sama. Untuk informasi mengenai pemetaan antara tipe disk dan tipe instans ECS, lihat Instance families.

    Penyebab

    • Tidak tersedia node yang memenuhi syarat untuk penjadwalan.

    • Terjadi masalah saat menyambungkan cloud disk.

    • Tipe instans ECS dan tipe cloud disk tidak cocok.

    Solusi

    • Untuk pemulihan cepat, Anda dapat menjadwalkan Pod ke node lain. Untuk informasi selengkapnya, lihat Schedule applications to specified nodes.

    • Jalankan kubectl describe pods <pod-name> untuk melihat event Pod.

    • Jika masalah disebabkan oleh ketidakcocokan antara tipe instans ECS dan tipe cloud disk, Anda dapat memilih tipe disk yang sesuai. Untuk informasi selengkapnya, lihat Instance families.

    • Untuk informasi selengkapnya mengenai penanganan masalah ECS OpenAPI lainnya, lihat ErrorCode.

    NAS persistent volumes

    Penting
    • Node dan sistem file NAS harus berada dalam VPC yang sama. Jika tidak berada dalam VPC yang sama, Anda dapat menggunakan Cloud Enterprise Network (CEN) untuk menghubungkannya.

    • NAS mendukung pemasangan lintas zona.

    • Jalur mount untuk sistem file NAS Ekstrem harus dimulai dengan /share.

    Penyebab

    • Saat menggunakan fsGroups untuk memasang sistem file NAS, banyak file dapat memperlambat operasi `chmod`.

    • Port 2049 diblokir di security group, sehingga mencegah sistem file NAS dipasang.

    • Sistem file NAS dan node tidak berada dalam VPC yang sama.

    Solusi

    • Periksa apakah fsGroups diatur. Jika iya, Anda dapat menghapusnya, restart Pod, lalu pasang kembali volume tersebut.

    • Konfirmasi apakah port 2049 diblokir di node tempat Pod dijadwalkan. Jika port tersebut diblokir, Anda dapat membuka port 2049 lalu memasang kembali volume tersebut. Untuk informasi selengkapnya, lihat Add a security group rule.

    • Konfirmasi bahwa sistem file NAS dan node berada dalam VPC yang sama. Jika tidak, gunakan CEN untuk menghubungkannya.

    • Untuk masalah lainnya, jalankan kubectl describe pods <pod-name> untuk melihat event Pod.

    OSS persistent volumes

    Penting
    • Saat sebuah node memasang bucket OSS, PV harus berisi Informasi AccessKey. Anda dapat menyediakan informasi ini menggunakan Secret.

    • Saat menggunakan OSS lintas wilayah, ubah URL bucket ke titik akhir publik. Untuk akses dalam wilayah yang sama, kami menyarankan agar Anda menggunakan titik akhir internal.

    Penyebab

    • Menggunakan fsGroups untuk memasang bucket OSS yang berisi banyak file memperlambat operasi chmod.

    • Titik akhir internal digunakan untuk akses lintas wilayah, sehingga mencegah koneksi ke titik akhir bucket.

    Solusi

    • Periksa apakah fsGroups diatur. Jika iya, Anda dapat menghapusnya, restart Pod, lalu pasang kembali volume tersebut.

    • Periksa apakah Anda mengakses bucket lintas wilayah menggunakan titik akhir internal. Jika iya, gunakan titik akhir publik sebagai gantinya.

    • Untuk masalah lainnya, jalankan kubectl describe pods <pod-name> untuk melihat event Pod.

FAQ

Saat saya membuat atau memasang persistent volume, PVC menampilkan pesan no volume plugin matched

Gejala

Saat Anda membuat atau memasang persistent volume, event PVC menampilkan pesan: Unable to attach or mount volumes: unmounted volumes=[xxx], unattached volumes=[xxx]: failed to get Plugin from volumeSpec for volume "xxx" err=no volume plugin matched.

Penyebab

Komponen penyimpanan yang ditentukan dalam templat YAML tidak ditemukan di kluster.

Solusi

Periksa apakah komponen penyimpanan ada di kluster.

  • Jika komponen penyimpanan belum diinstal, Anda dapat menginstalnya di kluster. Untuk informasi selengkapnya, lihat Manage components.

  • Jika komponen penyimpanan sudah diinstal, pastikan komponen tersebut sesuai dengan templat YAML untuk PV dan PVC serta memenuhi kondisi berikut:

    • Komponen penyimpanan CSI dideploy menggunakan dokumen terkait CSI. Untuk informasi selengkapnya, lihat CSI.

    • Komponen penyimpanan FlexVolume dideploy menggunakan dokumen terkait FlexVolume. Untuk informasi selengkapnya, lihat FlexVolume.

      Penting

      Karena FlexVolume telah ditinggalkan, kami menyarankan agar Anda segera migrasi ke komponen CSI. Untuk informasi selengkapnya, lihat Migrate from FlexVolume to CSI.

Event Pod menampilkan pesan 0/x nodes are available: x pod has unbound immediate PersistentVolumeClaims

Gejala

Pod gagal berjalan, dan event Pod menampilkan pesan berikut:

0/x nodes are available: x pod has unbound immediate PersistentVolumeClaims. preemption: 0/x nodes are available: x Preemption is not helpful for scheduling

Penyebab

StorageClass kustom yang direferensikan oleh Pod belum dibuat sehingga tidak dapat ditemukan.

Solusi

Periksa apakah StorageClass yang direferensikan oleh Pod ada. Jika tidak ada, Anda dapat membuat ulang StorageClass tersebut.

PV berada dalam status Released dan tidak dapat di-bind dengan membuat ulang PVC

Gejala

Setelah PVC dihapus secara tidak sengaja, PV masuk ke status Released dan tidak dapat di-bind dengan membuat ulang PVC.

Penyebab

Jika reclaimPolicy dari PV adalah Retain, PV akan masuk ke status Released saat PVC yang di-bind-nya dihapus secara tidak sengaja.

Solusi

Anda dapat menghapus bidang pv.spec.claimRef dari PV lalu meng-bind-nya kembali menggunakan metode volume statis. PV kemudian akan masuk ke status Bound.

PV berada dalam status Lost dan tidak dapat di-bind dengan membuat ulang PVC

Gejala

Setelah PVC dan PV dibuat, PV masuk ke status Lost dan tidak dapat di-bind ke PVC.

Penyebab

Nama PVC yang direferensikan oleh bidang claimRef di PV tidak ada. Hal ini menyebabkan PV masuk ke status Lost.

Solusi

Anda dapat menghapus bidang pv.spec.claimRef dari PV lalu meng-bind-nya kembali menggunakan metode volume statis. PV kemudian akan masuk ke status Bound.

Apakah perubahan StorageClass memengaruhi penyimpanan yang sudah ada?

Tidak, tidak memengaruhi. Jika file YAML untuk PVC dan PV tidak diubah, perubahan pada StorageClass tidak memengaruhi penyimpanan yang sudah ada. Misalnya, jika Anda mengubah bidang allowVolumeExpansion dari StorageClass, perubahan tersebut hanya berlaku setelah Anda mengubah capacity dari PVC. Jika file YAML PVC tidak diubah, perubahan ini tidak memengaruhi konfigurasi yang sudah ada.