All Products
Search
Document Center

Container Service for Kubernetes:Mengelola komponen csi-plugin dan csi-provisioner

Last Updated:Mar 03, 2026

Komponen Container Storage Interface (CSI) menangani operasi siklus hidup volume dinamis di kluster ACK. Panduan ini mencakup peran komponen, prosedur peningkatan, dan troubleshooting.

Ikhtisar komponen CSI

ACK menginstal dua komponen CSI secara default saat membuat kluster:

Komponen

Peran

Jenis Penyebaran

csi-plugin

Memasang, melepas pemasangan, dan memformat volume

DaemonSet

csi-provisioner

Membuat dan menskalakan volume secara dinamis serta membuat snapshot. Secara default mendukung volume Elastic Block Storage (EBS), NAS, dan OSS.

Deployment

Catatan

Kluster baru menginstal versi managed dari csi-provisioner secara default. Alibaba Cloud menangani operasi dan pemeliharaan (O&M) untuk komponen managed, sehingga Pod terkait tidak terlihat di kluster.

Peningkatan csi-plugin dan csi-provisioner

Periksa pembaruan yang tersedia dan tingkatkan komponen CSI dari Konsol ACK.

Penting

Jika komponen csi-compatible-controller sedang digunakan untuk migrasi FlexVolume ke CSI dan migrasi tersebut belum selesai, peningkatan otomatis akan diblokir. Selesaikan migrasi terlebih dahulu atau lakukan peningkatan manual pada komponen CSI selama proses migrasi. Untuk detailnya, lihat Peningkatan komponen.

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

  2. Di halaman Clusters, temukan kluster target dan klik namanya. Di panel navigasi kiri, klik Add-ons.

  3. Klik tab Storage. Di kartu csi-plugin dan csi-provisioner, periksa pembaruan yang tersedia dan terapkan.

    Catatan

    Jika peningkatan gagal di konsol, lihat Kegagalan peningkatan komponen untuk langkah troubleshooting.

Troubleshooting

Permasalahan komponen

csi-plugin gagal memulai dengan error exec format

Kontainer csi-plugin melaporkan:

exec /usr/bin/plugin.csi.alibabacloud.com: exec format error

Penyebab: csi-plugin mendukung arsitektur amd64 dan arm64. Error ini terjadi ketika pull image tidak lengkap — metadata image ada, tetapi binernya tidak valid. Pemicu umum adalah shutdown paksa node selama proses pull image. Periksa log ActionTrail untuk instans ECS guna memastikan apakah perintah shutdown pernah dieksekusi.

Solusi:

  • Opsi A: Skalakan kluster dengan menambahkan node baru, lalu drain node saat ini.

  • Opsi B: Jika tidak memungkinkan menambahkan node baru:

    1. Drain semua aplikasi dari node saat ini, lalu hapus node tersebut dari kluster.

    2. Masuk ke node tersebut dan hapus semua kontainer, jika ada.

    3. Hapus semua file di direktori /var/lib/containerd.

    4. Tambahkan kembali node tersebut ke kluster.

Error out-of-memory (OOM) dari csi-provisioner

Kontainer sidecar di Pod csi-provisioner menyimpan cache informasi tentang Pod, persistent volumes (PVs), dan persistent volume claims (PVCs). Seiring pertumbuhan kluster, cache ini dapat menyebabkan error OOM.

  • Versi managed: Kirim tiket untuk bantuan.

  • Versi self-managed: Sesuaikan batas memori berdasarkan ukuran kluster: Modify memory limit

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

    2. Di halaman Clusters, temukan kluster target dan klik namanya. Di panel navigasi kiri, klik Add-ons.

    3. Di halaman Add-ons, temukan csi-provisioner, klik ikon icon, lalu pilih View YAML.

    4. Edit file YAML untuk menaikkan batas memori.

Lalu lintas jaringan tinggi pada Pod csi-plugin

Pemantauan Pod menunjukkan lalu lintas jaringan yang tidak biasa tinggi untuk csi-plugin.

Penyebab: csi-plugin memasang volume NAS pada node. Ketika sebuah Pod menggunakan volume NAS, lalu lintas permintaan NAS dari Pod tersebut melewati namespace csi-plugin. Pemantauan kluster mencatat lalu lintas ini pada Pod csi-plugin.

Tidak perlu tindakan. Lalu lintas tersebut hanya dicatat oleh sistem pemantauan. Tidak diduplikasi dan tidak mengonsumsi bandwidth tambahan.

Log csi-provisioner menampilkan error failed to renew lease

Menjalankan kubectl logs csi-provisioner-xxxx -n kube-system menampilkan:

failed to renew lease xxx timed out waiting for the condition

Penyebab: csi-provisioner adalah komponen high availability (HA) yang menjalankan beberapa replika. Pod menggunakan objek Lease Kubernetes untuk pemilihan leader. Pod yang mendapatkan lease menjadi leader dan melayani kluster. Error ini berarti sebuah Pod gagal menghubungi API server.

Solusi: Periksa apakah jaringan kluster dan API server berfungsi normal. Jika masalah berlanjut, kirim tiket untuk bantuan.

Kegagalan peningkatan komponen

Pre-check csi-plugin gagal

  • Kluster non-produksi atau tidak ada volume yang digunakan: Perbarui image secara manual:

    kubectl set image -n kube-system daemonset/csi-plugin csi-plugin=<image url> <code data-tag="inlineCode" id="eb665619831lb">kubectl set image -n kube-system daemonset/csi-plugin csi-plugin=<image url>

    Ganti <image url> dengan URL image versi target. Untuk daftar versi yang tersedia, lihat csi-plugin.

  • Kluster produksi dengan data kritis: Kirim tiket untuk meminta peningkatan manual.

Pre-check csi-plugin berhasil tetapi peningkatan gagal

Komponen csi-plugin merupakan DaemonSet. Peningkatan gagal jika ada node dalam kluster yang berada dalam status NotReady atau status selain Running. Perbaiki node yang bermasalah terlebih dahulu, lalu coba lagi peningkatannya.

Jika penyebabnya tidak jelas, kirim tiket untuk meminta peningkatan manual.

Konsol menampilkan csi-plugin tetapi tidak menampilkan csi-provisioner

Versi lama csi-provisioner (1.14 dan sebelumnya) diterapkan sebagai StatefulSet. Jika StatefulSet csi-provisioner masih ada di kluster, hapus lalu instal ulang:

kubectl delete sts csi-provisioner

Kemudian instal ulang komponen csi-provisioner dari konsol. Jika terjadi error, kirim tiket untuk meminta peningkatan manual.

Pre-check csi-provisioner gagal

  • Kluster non-produksi atau tidak ada volume yang diprovisikan secara dinamis: Perbarui image secara manual:

    kubectl set image -n kube-system deployment/csi-provisioner csi-provisioner=<image url>

    Ganti <image url> dengan URL image versi target. Untuk daftar versi yang tersedia, lihat csi-provisioner.

  • Kluster produksi dengan volume disk, NAS, atau OSS yang diprovisikan secara dinamis dan berisi data kritis: Kirim tiket untuk meminta peningkatan manual.

Pre-check csi-provisioner berhasil tetapi peningkatan gagal

Kirim tiket untuk meminta peningkatan manual.

Peningkatan csi-provisioner gagal karena persyaratan jumlah node

Permasalahan ini memiliki dua varian:

Varian 1 – Pre-check gagal dengan error jumlah node

Pre-check melaporkan bahwa jumlah node kluster tidak memenuhi persyaratan. Untuk menjamin high availability, csi-provisioner menjalankan Pod primary dan secondary yang harus ditempatkan di node berbeda. Peningkatan gagal jika kluster hanya memiliki satu node.

Solusi: Perbarui komponen csi-provisioner. Untuk detailnya, lihat Mengelola komponen csi-plugin dan csi-provisioner.

Varian 2 – Pre-check berhasil tetapi Pod masuk ke CrashLoopBackOff dengan 403 Forbidden

Log Pod csi-provisioner menampilkan respons 403 Forbidden:

time="2023-08-05T13:54:00+08:00" level=info msg="Use node id : <?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n         \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n <head>\n  <title>403 - Forbidden</title>\n </head>\n <body>\n  <h1>403 - Forbidden</h1>\n </body>\n</html>\n"

Penguatan Keamanan diaktifkan pada node tempat Pod tersebut berjalan. Hal ini memblokir akses ke server metadata, yang dibutuhkan oleh CSI.

Solusi: Nonaktifkan Penguatan Keamanan pada node tersebut. CSI memerlukan akses ke metadata node.

Peningkatan csi-provisioner gagal karena perubahan properti StorageClass

Pre-check gagal dengan error yang menunjukkan bahwa properti StorageClass tidak sesuai harapan.

Penyebab: Properti StorageClass default telah diubah. Hal ini bisa terjadi saat menghapus dan membuat ulang StorageClass dengan nama yang sama. Properti StorageClass bersifat immutable. Mengubahnya menyebabkan peningkatan gagal.

Solusi:

  1. Hapus StorageClass default di kluster: alicloud-disk-essd, alicloud-disk-available, alicloud-disk-efficiency, alicloud-disk-ssd, dan alicloud-disk-topology. Penghapusan ini tidak memengaruhi aplikasi yang sudah ada.

  2. Instal ulang komponen csi-provisioner. Sistem akan secara otomatis membuat ulang StorageClass tersebut.

Penting

Untuk menggunakan StorageClass kustom, buat yang baru dengan nama berbeda. Jangan ubah StorageClass default.

Referensi