All Products
Search
Document Center

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

Last Updated:Jun 21, 2026

Komponen Container Storage Interface (CSI), csi-plugin dan csi-provisioner, mengotomatiskan operasi seperti penyediaan dinamis, pemasangan (mounting), pelepasan (unmounting), dan pengubahan ukuran volume penyimpanan. Hal ini memungkinkan Anda menggunakan sumber daya penyimpanan Alibaba Cloud, seperti cloud disk dan NAS, secara mulus layaknya sumber daya Kubernetes native.

Ikhtisar komponen

Komponen

Komponen CSI diinstal secara default di kluster ACK. Komponen csi-plugin dan csi-provisioner bekerja sama untuk mengelola siklus hidup volume penyimpanan.

Komponen

Deskripsi

Jenis penyebaran

csi-plugin

Berjalan di setiap node untuk menjalankan operasi tingkat node, seperti memasang dan melepas volume penyimpanan serta memformat sistem file.

DaemonSet

csi-provisioner

Berjalan sebagai pengontrol pusat untuk menangani penyediaan dinamis, penghapusan, pengubahan ukuran, dan pembuatan snapshot volume penyimpanan. Komponen ini mendukung pengelolaan volume penyimpanan cloud disk, NAS, dan OSS.

Deployment

Mode terkelola dan tidak terkelola untuk csi-provisioner

Untuk meningkatkan stabilitas dan mengurangi beban operasional, csi-provisioner menyediakan mode terkelola dan tidak terkelola. Kluster baru menggunakan mode terkelola secara default.

  • Mode terkelola (default)
    Pod komponen dikelola oleh ACK dan tidak terlihat di namespace kube-system. ACK memelihara komponen dan menyesuaikan alokasi sumber dayanya.

  • Mode tidak terkelola
    Pod komponen dideploy sebagai Deployment di namespace kube-system. Anda harus mengelola konfigurasi sumber daya (dengan memodifikasi YAML Deployment) dan menangani masalah yang muncul.

Peningkatan komponen CSI

Anda dapat melihat versi komponen dan melakukan peningkatan pada halaman Add-ons di konsol.

Pemeriksaan sebelum peningkatan

  • Periksa kompatibilitas versi: Rujuk changelog (csi-provisioner, csi-plugin) untuk memastikan bahwa versi CSI target kompatibel dengan versi kluster Anda saat ini.

  • Periksa status migrasi FlexVolume: Jika kluster Anda sebelumnya menggunakan komponen csi-compatible-controller untuk migrasi dari FlexVolume ke CSI, tugas migrasi yang belum selesai akan menghalangi peningkatan otomatis komponen CSI. Selesaikan migrasi terlebih dahulu, atau lihat Peningkatan komponen untuk melakukan peningkatan manual selama proses migrasi.

  • Ikuti urutan peningkatan: Komponen penyimpanan memiliki dependensi. Untuk memastikan kompatibilitas dan stabilitas, tingkatkan komponen dalam urutan berikut: storage-operatorcsi-provisionercsi-plugin.

Proses peningkatan

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

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Components and Add-ons.

  3. Klik tab Volumes. Temukan csi-provisioner dan csi-plugin, lalu tingkatkan secara berurutan.

    Jika peningkatan gagal, lihat Kegagalan peningkatan komponen.

    Setelah peningkatan, Anda dapat memeriksa kartu komponen untuk memverifikasi bahwa versinya sesuai harapan.

Pertimbangan produksi

  • Penguatan keamanan dan konflik akses metadata:

    Komponen csi-plugin harus mengakses instance metadata untuk mendapatkan informasi node, seperti wilayah dan zona ketersediaan. Jika Anda menonaktifkan akses metadata, komponen akan gagal memulai atau berjalan tidak normal. Lihat Akses metadata instans ECS dalam mode penguatan keamanan untuk mengetahui versi komponen yang diperlukan.

    Saat mengonfigurasi grup keamanan atau kebijakan keamanan node, pastikan pod komponen csi-plugin dapat mengakses layanan instance metadata.

  • Pertahankan StorageClass default:

    ACK menyediakan objek StorageClass default seperti alicloud-disk-essd. Jika Anda mengubah propertinya, seperti provisioner atau parameters, peningkatan komponen mungkin gagal.

FAQ

Masalah komponen

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

Gejala

Kontainer csi-plugin dalam Pod csi-plugin gagal memulai, dan log menampilkan error: exec /usr/bin/plugin.csi.alibabacloud.com: exec format error.

Penyebab

Error ini biasanya menunjukkan ketidakcocokan arsitektur CPU. Namun, csi-plugin secara default mendukung arsitektur amd64 dan arm64. Oleh karena itu, jika error ini muncul pada node yang didukung, kemungkinan besar disebabkan oleh file image CSI yang rusak.

Hal ini dapat terjadi jika proses pull image terganggu, misalnya akibat shutdown paksa. Akibatnya, file image yang tidak lengkap tersisa di node. Meskipun metadata imagenya ada, file binary executable-nya tidak valid atau rusak, sehingga mencegah kontainer csi-plugin memulai.

Solusi

  • Tambahkan node baru (scale out), lalu drain node bermasalah tersebut.

  • Jika Anda harus mempertahankan node saat ini, lakukan langkah-langkah berikut:

    1. Drain node untuk mengeluarkan beban kerjanya, lalu hapus node tersebut dari kluster.

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

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

    4. Tambahkan kembali node ke kluster.

Masalah OOM komponen penyimpanan

Kontainer sidecar dalam pod komponen csi-provisioner menyimpan cache informasi sumber daya seperti pod, PV, dan PVC. Di kluster berskala besar, hal ini dapat mengonsumsi memori dalam jumlah signifikan dan menyebabkan kontainer mengalami error Out-of-Memory (OOM).

  • csi-provisioner terkelola: Submit a ticket untuk bantuan.

  • csi-provisioner tidak terkelola: Jika terjadi error OOM, sesuaikan batas sumber daya berdasarkan ukuran kluster Anda.

    1. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Components and Add-ons.

    2. Temukan komponen csi-provisioner, klik ikon 图标, lalu klik View in YAML.

    3. Edit YAML komponen untuk menyesuaikan batas sumber daya sesuai ukuran kluster Anda.

      containers:
          - name: external-disk-provisioner
            image: registry-vpc.cn-huhexxxx.yuncs.com/acs/csi-provisioner:v3.0.0-080f01e64-aliyun
            resources:
              requests:
                cpu: 10m
                memory: 16Mi
              limits:
                cpu: 500m
                memory: 1024Mi

Trafik jaringan tinggi pada csi-plugin

Gejala

Di dasbor pemantauan pod kluster, pod komponen csi-plugin menunjukkan trafik jaringan tinggi.

Penyebab

Ini merupakan perilaku yang diharapkan. Komponen csi-plugin mengelola pemasangan volume penyimpanan NAS pada node. Saat pod aplikasi membaca atau menulis data melalui titik mount NAS, trafik jaringan yang dihasilkan melewati namespace jaringan pod csi-plugin. Oleh karena itu, sistem pemantauan mengatribusikan trafik ini ke pod csi-plugin.

Solusi

Tidak perlu tindakan apa pun; Anda dapat mengabaikan hal ini dengan aman. Trafik tersebut hanya diatribusikan ke pod csi-plugin untuk keperluan pencatatan dan tidak benar-benar mengonsumsi sumber dayanya, juga tidak menyebabkan trafik ganda atau tagihan berulang. Ini merupakan artefak pemantauan yang tidak memengaruhi kinerja.

Log komponen csi-provisioner melaporkan error failed to renew lease xxx timed out waiting for the condition

Gejala

Jalankan perintah kubectl logs csi-provisioner-xxxx -n kube-system untuk melihat log CSI. Error failed to renew lease xxx timed out waiting for the condition dilaporkan.

Penyebab

Komponen csi-provisioner menggunakan model multi-replika untuk ketersediaan tinggi. Untuk memastikan hanya satu instance yang melayani permintaan pada satu waktu, replika-replika tersebut menggunakan mekanisme Lease Kubernetes untuk pemilihan leader. Mekanisme ini sangat bergantung pada komunikasi stabil dengan API server.

Error ini menunjukkan bahwa csi-provisioner tidak dapat mengakses API server, sehingga proses pemilihan leader gagal. Akibatnya, tidak ada replika yang dapat menjadi leader dan memberikan layanan.

Solusi

Periksa konektivitas jaringan kluster dan status API server. Jika masalah berlanjut, submit a ticket untuk bantuan.

Kegagalan peningkatan komponen

Kegagalan pemeriksaan pra-peningkatan csi-plugin

Masalah ini biasanya terjadi selama migrasi dari plug-in penyimpanan FlexVolume ke CSI. Anda dapat menjalankan perintah berikut untuk memastikan apakah kedua plug-in penyimpanan tersebut eksis secara bersamaan.

kubectl -nkube-system get ds csi-plugin flexvolume

Jika outputnya mirip dengan berikut:

NAME         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
csi-plugin   4         4         4       4            4           kubernetes.io/os=linux   7d
flexvolume   4         4         4       4            4           kubernetes.io/os=linux   7d                                  

Hal ini menunjukkan bahwa kedua plug-in penyimpanan tersebut eksis secara bersamaan.

FlexVolume dan CSI tidak dapat ditingkatkan selama keduanya eksis secara bersamaan. Untuk meningkatkan komponen CSI, pertama-tama migrasikan semua PV dan PVC FlexVolume ke CSI, lalu uninstall komponen FlexVolume. Untuk informasi lebih lanjut, lihat Migrasi FlexVolume tanpa kluster penyimpanan ke CSI.

Jika ini bukan penyebabnya dan kluster Anda menyimpan data bisnis kritis, hubungi kami untuk meminta peningkatan manual berbantuan.

Peningkatan csi-plugin gagal setelah pemeriksaan awal

Komponen csi-plugin dideploy sebagai DaemonSet, yang mengharuskan semua node berada dalam kondisi sehat. Peningkatan akan gagal jika kluster memiliki node dalam status NotReady atau tidak dalam status Running.

Anda harus memperbaiki node yang bermasalah terlebih dahulu, lalu coba lagi peningkatannya. Jika Anda tidak dapat mengidentifikasi penyebabnya, hubungi kami untuk meminta peningkatan manual berbantuan.

csi-provisioner tidak muncul di konsol

Versi csi-provisioner yang lebih lama (1.14 dan sebelumnya) dideploy sebagai StatefulSet. Jika instance StatefulSet csi-provisioner masih ada di kluster saat ini, Anda harus menghapusnya secara manual (kubectl delete sts csi-provisioner) sebelum menginstal ulang.

Jika Anda mengalami masalah selama operasi ini, hubungi kami untuk meminta peningkatan manual berbantuan.

Kegagalan pemeriksaan pra-peningkatan csi-provisioner

Masalah ini biasanya terjadi selama migrasi dari plug-in penyimpanan FlexVolume ke CSI. Anda dapat menjalankan perintah berikut untuk memastikan apakah kedua plug-in penyimpanan tersebut eksis secara bersamaan.

kubectl -nkube-system get ds csi-plugin flexvolume

Jika outputnya mirip dengan berikut:

NAME         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
csi-plugin   4         4         4       4            4           kubernetes.io/os=linux   7d
flexvolume   4         4         4       4            4           kubernetes.io/os=linux   7d                                  

Hal ini menunjukkan bahwa kedua plug-in penyimpanan tersebut eksis secara bersamaan.

FlexVolume dan CSI tidak dapat ditingkatkan selama keduanya eksis secara bersamaan. Untuk meningkatkan komponen CSI, pertama-tama migrasikan semua PV dan PVC FlexVolume ke CSI, lalu uninstall komponen FlexVolume. Untuk informasi lebih lanjut, lihat Migrasi FlexVolume tanpa kluster penyimpanan ke CSI.

Jika ini bukan penyebabnya dan kluster Anda menyimpan data bisnis kritis, hubungi kami untuk meminta peningkatan manual berbantuan.

Peningkatan csi-provisioner gagal setelah pemeriksaan awal

Hubungi kami untuk meminta peningkatan manual berbantuan.

Kegagalan peningkatan csi-provisioner: Jumlah node atau izin

Gejala

  • Skenario 1: Pemeriksaan pra-peningkatan komponen csi-provisioner gagal, menunjukkan bahwa kluster tidak memiliki cukup node.

  • Skenario 2: Pemeriksaan awal dan peningkatan komponen csi-provisioner berhasil. Namun, Pod komponen masuk ke status CrashLoopBackOff, dan log menampilkan error 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"

Penyebab dan solusi

  • Skenario 1

    • Penyebab: Komponen csi-provisioner menggunakan model penyebaran aktif-standby, dan dua replikanya harus dijadwalkan ke node yang berbeda untuk memenuhi persyaratan anti-affinity. Kluster dengan satu node tidak dapat memenuhi kondisi penjadwalan ini, sehingga replika kedua tetap dalam status Pending dan mencegah peningkatan selesai dengan sukses.

    • Solusi: Tambahkan setidaknya satu node lagi ke kluster untuk memastikan replika ganda dapat dijadwalkan dengan benar.

  • Skenario 2

    • Penyebab: Komponen csi-provisioner harus mengakses instance metadata node untuk mendapatkan informasi seperti ID instans dan wilayah, yang diperlukan untuk memanggil API Alibaba Cloud. Jika penguatan keamanan diaktifkan pada node atau kebijakan jaringan yang ketat dikonfigurasi, akses ke layanan metadata mungkin diblokir.

    • Solusi: Sesuaikan atau nonaktifkan kebijakan penguatan keamanan pada node untuk memastikan pod dapat mengakses layanan metadata. Periksa juga aturan grup keamanan, pengaturan firewall OS, dan skrip keamanan terkait.

Kegagalan peningkatan csi-provisioner: Modifikasi StorageClass

Gejala

Instalasi atau peningkatan csi-provisioner gagal dalam pemeriksaan awal, menunjukkan bahwa properti StorageClass tidak sesuai harapan.

Penyebab

StorageClass default yang disediakan oleh ACK memiliki konfigurasi tetap, dan bidang intinya, seperti provisioner dan parameters, tidak dapat diubah. Menghapus dan membuat ulang StorageClass secara manual dengan nama yang sama akan menyebabkan kegagalan validasi dan mengganggu proses peningkatan komponen.

Installer CSI memvalidasi integritas sumber daya ini secara ketat untuk memastikan perilaku komponen yang konsisten.

Solusi

  1. Hapus objek StorageClass default dari kluster, termasuk alicloud-disk-essd, alicloud-disk-available, alicloud-disk-efficiency, alicloud-disk-ssd, dan alicloud-disk-topology.

    Operasi ini tidak memengaruhi penggunaan normal PV dan PVC yang sudah ada.
  2. Setelah Anda menghapus objek StorageClass tersebut, instal ulang csi-provisioner. Installer akan secara otomatis membuat ulang objek StorageClass tersebut. Tidak diperlukan tindakan tambahan.

Jika Anda memerlukan StorageClass kustom, selalu buat yang baru dengan nama berbeda. Jangan ubah atau buat ulang objek StorageClass default.

Hubungi kami

Untuk meminta dukungan peningkatan manual, gunakan DingTalk untuk mencari nomor grup 35532895 dan bergabunglah ke grup tersebut untuk mendapatkan bantuan.

Referensi