Jika Anda mengalami anomali status pod saat memasang dan menggunakan volume penyimpanan, lakukan pemecahan masalah dengan memeriksa status dan event pod serta PVC, bersama komponen penyimpanan CSI, untuk mengidentifikasi penyebab dan menyelesaikan masalah tersebut. Topik ini menjelaskan prosedur diagnostik untuk masalah penyimpanan umum.

1. Periksa apakah anomali pod disebabkan oleh masalah penyimpanan
Konfirmasi apakah pod tidak dapat dimulai karena masalah penyimpanan dengan memeriksa event pod atau PVC.
Periksa event pod yang bermasalah.
kubectl describe pod <pod-name>Jika terdapat event di Events yang menunjukkan masalah penyimpanan (misalnya,
FailedSchedulingdenganMessageyang menunjukkan kegagalan penjadwalan karena ketidaksesuaian antara volume dan node), rujuk bagian berikut untuk pemecahan masalah lebih lanjut.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 terdapat event di Events yang menunjukkan volume telah berhasil dipasang (misalnya,
SuccessfulAttachVolume), tetapi pod tidak dimulai (misalnya,CrashLoopBackOff), maka ini bukan masalah penyimpanan. Harap pecahkan masalah lain berdasarkan Events atau ajukan tiket.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*****"
Jika tidak ditemukan event terkait penyimpanan di event pod, Anda dapat memeriksa semua event.
kubectl get eventsJika terdapat event yang menunjukkan masalah penyimpanan (misalnya,
FailedBindingyang menunjukkan kegagalan PVC mengikat ke PV), rujuk bagian berikut untuk pemecahan masalah lebih lanjut.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, harap pecahkan masalah lain berdasarkan Events atau ajukan tiket.
2. Periksa apakah komponen penyimpanan berfungsi dengan baik
Jika kluster Anda saat ini menggunakan komponen Flexvolume, karena Flexvolume sudah tidak didukung lagi, segera migrasikan ke komponen CSI. Untuk informasi selengkapnya, lihat Migrasi dari Flexvolume ke CSI.
Periksa apakah komponen penyimpanan CSI berfungsi dengan baik.
kubectl get pod -n kube-system |grep csiBerikut adalah contoh hasil yang dikembalikan. Jika status pod bukan Running, jalankan
kubectl describe pods <pod-name> -n kube-systemuntuk memeriksa alasan spesifik keluarnya kontainer dan event pod tersebut.CatatanKomponen penyimpanan CSI mencakup csi-plugin dan csi-provisioner, di mana csi-provisioner secara default diinstal dalam versi managed. Komponen versi managed dikelola oleh Alibaba Cloud, sehingga Anda tidak dapat melihat pod terkait di kluster.
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 3dPeriksa apakah komponen penyimpanan CSI merupakan versi terbaru.
kubectl get ds csi-plugin -n kube-system -o yaml |grep imageAnda dapat mengonfirmasi versi gambar di bidang
imagedari informasi yang dikembalikan, seperti pada contoh berikut:image: registry-cn-shanghai-vpc.ack.aliyuncs.com/acs/csi-plugin:v1.33.1-67e8986-aliyunJika komponen penyimpanan bukan versi terbaru, harap tingkatkan csi-plugin dan csi-provisioner. Untuk informasi tentang versi terbaru komponen penyimpanan, lihat csi-plugin.
CatatanAnda juga dapat menemukan komponen csi-plugin dan csi-provisioner di halaman Components di konsol untuk mengonfirmasi informasi versi dan meningkatkan komponen.
Periksa YAML PV, PVC, dan StorageClass untuk memastikan bahwa konfigurasi driver (
driveratau bidangprovisioner) menggunakan komponen penyimpanan CSI dan konsisten dengan komponen penyimpanan yang digunakan oleh kluster saat ini.
3. Periksa apakah PVC berada dalam status Bound
Periksa status PVC.
kubectl get pvcJika PVC tidak dalam status Bound, rujuk metode berikut untuk pemecahan masalah dan penyelesaian.
Penyebab
Statis: Selector PVC dan PV gagal memenuhi kondisi tertentu. Misalnya, konfigurasi selector PVC berbeda dari PV, nama StorageClass tidak konsisten, atau status PV adalah Released.
Dinamis: Masalah dengan komponen csi-provisioner.
Solusi
Statis: Periksa apakah YAML terkait ditulis dengan benar. Untuk informasi selengkapnya, lihat topik berikut:
CatatanJika status PV adalah Released, PV tidak dapat digunakan kembali. Anda perlu mendapatkan informasi sumber daya penyimpanan dari PV dan membuat PV baru.
Dinamis: Jalankan
kubectl describe pvc <pvc-name> -n <namespace>untuk memeriksa event PVC.Tangani sesuai dengan informasi prompt event. Untuk informasi selengkapnya, lihat topik berikut:
Jika tidak ada informasi event terkait, ajukan tiket.
Jika Anda menggunakan volume disk, masalah tersebut kemungkinan terjadi pada ECS OpenAPI saat membuat disk. Silakan merujuk ke ECS Error Center untuk pemecahan masalah. Jika langkah tersebut tidak berhasil, ajukan tiket.
4. Periksa apakah pod berada dalam status Running
Periksa status pod.
kubectl get podJika PVC berada dalam status Bound tetapi pod tidak dalam status Running, rujuk metode berikut untuk pemecahan masalah dan penyelesaian berdasarkan jenis volume penyimpanan.
Volume disk
PentingSaat menggunakan volume disk, pastikan spesifikasi node ECS tempat Pod dijadwalkan mendukung pemasangan jenis disk tersebut, serta Pod dan disk berada dalam wilayah dan zona yang sama. Untuk informasi tentang hubungan pencocokan antara jenis disk dan spesifikasi instance ECS, lihat Ikhtisar keluarga instance.
Penyebab
Tidak ada node yang tersedia untuk penjadwalan.
Terjadi kesalahan saat sistem memasang disk.
Instance ECS tidak mendukung jenis disk yang ditentukan.
Solusi
Jadwalkan pod ke node lain. Untuk informasi selengkapnya, lihat Jadwalkan pod aplikasi ke node tertentu.
Jalankan
kubectl describe pods <pod-name>untuk melihat event pod.Tangani sesuai dengan informasi prompt event. Untuk informasi selengkapnya, lihat FAQ tentang volume disk.
Jika tidak ada informasi event terkait, ajukan tiket.
Jika instance ECS tidak mendukung jenis disk yang ditentukan, pilih jenis disk yang didukung oleh instance ECS. Untuk informasi selengkapnya, lihat Ikhtisar keluarga instance.
Untuk masalah tipe ECS OpenAPI lainnya, lihat ErrorCode.
Volume NAS
PentingNode dan NAS harus berada dalam VPC yang sama. Jika tidak berada dalam VPC yang sama, gunakan Cloud Enterprise Network untuk menghubungkannya.
NAS mendukung pemasangan lintas zona.
Direktori mount untuk Extreme NAS harus dimulai dengan
/share.
Penyebab
fsGroupsdigunakan saat memasang NAS, dan terdapat banyak file, menyebabkan chmod menjadi lambat.Port 2049 diblokir dalam aturan grup keamanan.
Sistem file NAS dan node diterapkan di VPC yang berbeda.
Solusi
Periksa apakah
fsGroupsdikonfigurasi. Jika ya, hapus konfigurasi tersebut, mulai ulang pod, dan coba pasang kembali.Periksa apakah port 2049 dari node yang menjalankan pod diblokir. Jika ya, buka blokir port tersebut dan coba lagi. Untuk informasi selengkapnya, lihat Tambahkan aturan grup keamanan.
Jika sistem file NAS dan node diterapkan di VPC yang berbeda, gunakan Cloud Enterprise Network untuk menghubungkannya.
Untuk masalah lainnya, jalankan
kubectl describe pods <pod-name>untuk melihat event pod.Tangani sesuai dengan informasi prompt event. Untuk informasi selengkapnya, lihat FAQ tentang volume NAS.
Jika tidak ada informasi event terkait, ajukan tiket.
Volume OSS
PentingSaat memasang OSS ke node, Anda perlu mengisi Informasi AccessKey di PV, yang dapat digunakan melalui metode Secret.
Saat menggunakan OSS lintas wilayah, Anda perlu mengubah URL Bucket ke alamat publik. Untuk wilayah yang sama, disarankan menggunakan alamat internal.
Penyebab
fsGroupsdigunakan saat memasang OSS, dan terdapat banyak file, menyebabkan chmod menjadi lambat.Bucket OSS dan node dibuat di wilayah yang berbeda dan Titik akhir internal bucket OSS digunakan. Akibatnya, node gagal terhubung ke titik akhir bucket.
Solusi
Periksa apakah
fsGroupsdikonfigurasi. Jika ya, hapus konfigurasi tersebut, mulai ulang pod, dan coba pasang kembali.Periksa apakah bucket OSS dan node dibuat di wilayah yang berbeda dan apakah Titik akhir internal digunakan. Jika ya, ubah ke Titik akhir publik.
Untuk masalah lainnya, jalankan
kubectl describe pods <pod-name>untuk melihat event pod.Tangani sesuai dengan informasi prompt event. Untuk informasi selengkapnya, lihat FAQ tentang volume ossfs 1.0 atau FAQ tentang volume ossfs 2.0.
Jika tidak ada informasi event terkait, ajukan tiket.
FAQ
Saat membuat atau memasang volume penyimpanan, PVC menampilkan no volume plugin matched
Masalah
Saat membuat atau memasang volume penyimpanan, PVC menampilkan 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
Plugin volume tidak cocok dengan templat YAML. Akibatnya, sistem tidak dapat menemukan plugin volume yang sesuai saat membuat atau memasang volume.
Solusi
Periksa apakah plugin volume ada di kluster.
Jika plugin volume belum diinstal, instal plugin tersebut. Untuk informasi selengkapnya, lihat Kelola komponen.
Jika plugin volume sudah diinstal, periksa apakah plugin volume cocok dengan templat YAML PV dan PVC serta apakah templat YAML memenuhi persyaratan berikut:
Plugin CSI diterapkan dengan mengikuti langkah-langkah yang diperlukan. Untuk informasi selengkapnya, lihat Storage CSI.
Plugin FlexVolume diterapkan dengan mengikuti langkah-langkah yang diperlukan. Untuk informasi selengkapnya, lihat Storage FlexVolume.
PentingKarena FlexVolume sudah tidak didukung lagi, disarankan untuk segera migrasi ke komponen CSI. Untuk informasi selengkapnya, lihat Migrasi dari FlexVolume ke CSI.
Event Pod menunjukkan 0/x node tersedia: Pod x memiliki PersistentVolumeClaims langsung yang tidak terikat
Masalah
Pod gagal dimulai, dan event pod menunjukkan:
0/x nodes are available: x pod has unbound immediate PersistentVolumeClaims. preemption: 0/x nodes are available: x Preemption is not helpful for schedulingPenyebab
StorageClass kustom yang dirujuk oleh pod tidak ditemukan karena StorageClass kustom tersebut tidak ada.
Solusi
Periksa apakah StorageClass yang dirujuk oleh pod saat ini ada. Jika tidak ada, buat ulang StorageClass tersebut.
PV berada dalam status Released dan tidak dapat diikat dengan membuat ulang PVC
Masalah
Setelah PVC dihapus secara tidak sengaja, PV berada dalam status Released dan tidak dapat diikat dengan membuat ulang PVC.
Penyebab
Jika reclaimPolicy PVC adalah Retain, saat PVC dihapus secara tidak sengaja, PV akan berubah menjadi status Released.
Solusi
Hapus bidang pv.spec.claimRef di PV saat ini, lalu ikat ulang menggunakan metode volume statis. Hal ini akan mengubah PV menjadi status Bound.
PV berada dalam status Lost dan tidak dapat diikat dengan membuat ulang PVC
Masalah
Setelah membuat PVC dan PV, PV berada dalam status Lost dan tidak dapat diikat ke PVC.
Penyebab
Nama PVC yang dirujuk oleh claimRef di PV tidak ada, sehingga status PV menjadi Lost.
Solusi
Hapus bidang pv.spec.claimRef di PV saat ini, lalu ikat ulang menggunakan metode volume statis. Hal ini akan mengubah PV menjadi status Bound.
Apakah perubahan pada StorageClass memengaruhi penyimpanan yang sudah ada?
Jika file YAML PVC dan PV tidak berubah, perubahan pada StorageClass tidak akan memengaruhi penyimpanan yang sudah ada. Misalnya, saat memodifikasi bidang ALLOWVOLUMEEXPANSION StorageClass, perubahan tersebut hanya akan berlaku setelah memodifikasi Capacity PVC. Jika file YAML PVC tidak berubah, bidang ini tidak akan memengaruhi konfigurasi yang sudah ada.