全部产品
Search
文档中心

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

更新时间:Dec 12, 2025

Komponen Container Storage Interface (CSI) mencakup csi-plugin dan csi-provisioner, yang memungkinkan Anda membuat, menyambungkan, dan melepas volume secara dinamis.

Pengenalan komponen

Saat membuat kluster, komponen CSI berikut diinstal secara default:

Komponen

Deskripsi

Jenis Penerapan

csi-plugin

Memasang, melepas pemasangan, dan memformat volume.

DaemonSet

csi-provisioner

Membuat dan menskalakan volume secara dinamis serta membuat Snapshot. Secara default, komponen ini mendukung pembuatan volume Elastic Block Storage, NAS, dan OSS.

Deployment

Catatan

Saat membuat kluster baru, versi terkelola dari csi-provisioner diinstal secara default. Alibaba Cloud bertanggung jawab atas operasi dan pemeliharaan (O&M) komponen terkelola, sehingga Pod terkait tidak dapat dilihat di kluster Anda.

Peningkatan csi-plugin dan csi-provisioner

Anda dapat melihat versi komponen csi-plugin dan csi-provisioner serta meningkatkannya melalui Konsol.

Penting

Jika Anda menggunakan komponen csi-compatible-controller untuk migrasi FlexVolume ke CSI dan migrasi tersebut belum selesai, peningkatan otomatis komponen csi-plugin dan csi-provisioner tidak dapat dilakukan. Anda harus menyelesaikan migrasi terlebih dahulu sebelum meningkatkan komponen. Alternatifnya, Anda dapat meningkatkan komponen CSI secara manual selama proses migrasi. Untuk informasi lebih lanjut, lihat Peningkatan komponen.

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

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola lalu klik namanya. Di panel navigasi kiri, klik Add-ons.

  3. Klik tab Storage. Di bagian csi-plugin dan csi-provisioner, periksa apakah tersedia peningkatan lalu tingkatkan komponennya.

    Catatan

    Jika peningkatan gagal di Konsol, lihat Kegagalan peningkatan komponen untuk pemecahan masalah.

FAQ

Masalah komponen

Komponen CSI gagal dimulai, pengambilan citra gagal, dan terjadi kesalahan exec /usr/bin/plugin.csi.alibabacloud.com: exec format error

Gejala

Kontainer csi-plugin dalam Pod komponen csi-plugin melaporkan kesalahan exec /usr/bin/plugin.csi.alibabacloud.com: exec format error.

Penyebab

Secara default, csi-plugin mendukung arsitektur amd64 dan arm64. Jika Pod berjalan pada node dengan arsitektur amd64 atau arm64, kesalahan ini dapat terjadi karena pengambilan citra tidak lengkap. Pengambilan citra yang tidak lengkap berarti metadata citra ada, tetapi citra tidak berhasil ditarik, sehingga biner menjadi tidak valid. Pengambilan citra dapat gagal jika node dimatikan secara paksa selama proses berlangsung. Anda dapat memeriksa log ActionTrail untuk Instance ECS guna menentukan apakah perintah shutdown telah dieksekusi.

Solusi

  • Perluas kluster dengan menambahkan node baru, lalu drain node saat ini.

  • Jika Anda tidak ingin menambahkan node baru, lakukan langkah-langkah berikut:

    1. Drain 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.

Masalah kehabisan memori (OOM) yang disebabkan oleh komponen penyimpanan

Kontainer sidecar dalam Pod komponen csi-provisioner menyimpan cache informasi seperti Pod, Volume persisten (PV), dan PersistentVolumeClaims (PVC). Hal ini dapat menyebabkan kesalahan kehabisan memori (OOM) seiring bertambahnya ukuran kluster.

  • Jika Anda menggunakan versi terkelola dari komponen csi-provisioner, buat Tiket untuk mendapatkan bantuan.

  • Jika Anda menggunakan versi self-managed dari komponen csi-provisioner dan terjadi kesalahan OOM, Anda harus menyesuaikan batas memori berdasarkan ukuran kluster Anda. Lakukan langkah-langkah berikut:

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

    2. Di halaman Clusters, temukan kluster yang ingin Anda kelola lalu klik namanya. Di panel navigasi kiri, klik Add-ons.

    3. Di halaman Component Management, temukan komponen csi-provisioner, klik ikon 图标, lalu pilih View YAML.

    4. Modifikasi File YAML komponen untuk menyesuaikan batas memori berdasarkan ukuran kluster Anda.

      修改limit大小

Lalu lintas jaringan tinggi teramati pada Pod csi-plugin

Gejala

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

Penyebab

Komponen csi-plugin bertanggung jawab untuk memasang volume NAS pada node, yang menghasilkan lalu lintas jaringan. Saat sebuah Pod pada node menggunakan volume NAS, lalu lintas permintaan NAS dari Pod tersebut melewati namespace csi-plugin. Lalu lintas ini kemudian dicatat oleh pemantauan kluster, yang melaporkan lalu lintas jaringan tinggi untuk Pod csi-plugin.

Solusi

Tidak diperlukan tindakan apa pun. Lalu lintas ini hanya dicatat oleh komponen pemantauan. Lalu lintas tersebut tidak diduplikasi dan tidak mengonsumsi lebar pita jaringan tambahan.

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

Gejala

Saat menjalankan perintah kubectl logs csi-provisioner-xxxx -n kube-system untuk melihat log CSI, Anda mungkin menemukan kesalahan failed to renew lease xxx timed out waiting for the condition.

Penyebab

Komponen csi-provisioner adalah komponen Ketersediaan tinggi (HA) yang menjalankan beberapa replika. Pod menggunakan objek Lease Kubernetes untuk pemilihan leader. Selama proses ini, sebuah Pod harus mengakses server API untuk mendapatkan lease tertentu. Pod yang mendapatkan lease tersebut menjadi leader dan menyediakan layanan ke kluster. Kesalahan ini terjadi ketika Pod csi-provisioner gagal mengakses server API.

Solusi

Periksa apakah jaringan kluster dan server API berfungsi normal. Jika masalah berlanjut, buat Tiket untuk mendapatkan bantuan.

Kegagalan peningkatan komponen

Pemeriksaan awal komponen csi-plugin gagal

  • Jika kluster Anda tidak menggunakan volume disk, NAS, atau OSS, atau jika kluster merupakan Lingkungan pengujian, Anda dapat memperbarui citra secara manual untuk meningkatkan komponen csi-plugin.

    Berikut adalah contoh perintah. Ganti <image url> dengan URL citra untuk versi baru. Untuk informasi lebih lanjut, lihat csi-plugin.

    kubectl set image -n kube-system daemonset/csi-plugin csi-plugin=<image url>
  • Jika kluster Anda menggunakan volume disk, NAS, atau OSS dan berisi data bisnis penting, submit a ticket untuk meminta bantuan dalam peningkatan manual.

Pemeriksaan awal komponen csi-plugin berhasil, tetapi peningkatan gagal

Komponen csi-plugin adalah DaemonSet. Peningkatan gagal jika kluster berisi node yang berada dalam status NotReady atau status lain selain Berjalan. Anda harus memperbaiki node yang bermasalah secara manual lalu mencoba peningkatan lagi.

Jika Anda tidak dapat menentukan penyebabnya, submit a ticket untuk meminta bantuan dalam peningkatan manual.

Konsol menampilkan komponen csi-plugin tetapi tidak menampilkan komponen csi-provisioner

Versi lama csi-provisioner (1.14 dan sebelumnya) diterapkan sebagai StatefulSet. Jika StatefulSet csi-provisioner ada di kluster Anda, jalankan perintah kubectl delete sts csi-provisioner untuk menghapusnya. Kemudian, instal ulang komponen csi-provisioner.

Jika terjadi kesalahan, submit a ticket untuk meminta bantuan dalam peningkatan manual.

Pemeriksaan awal komponen csi-provisioner gagal

  • Jika kluster Anda tidak menggunakan volume penyimpanan dinamis jenis disk, NAS, atau OSS yang dibuat menggunakan StorageClass, atau jika kluster merupakan Lingkungan pengujian, Anda dapat memperbarui citra secara manual untuk meningkatkan komponen csi-provisioner.

    Berikut adalah contoh perintah. Ganti <image url> dengan URL citra untuk versi baru. Untuk informasi lebih lanjut, lihat csi-provisioner.

    kubectl set image -n kube-system deployment/csi-provisioner csi-provisioner=<image url>
  • Jika kluster Anda menggunakan volume penyimpanan dinamis jenis disk, NAS, atau OSS yang dibuat menggunakan StorageClass dan kluster berisi data bisnis penting, submit a ticket untuk meminta bantuan dalam peningkatan manual.

Pemeriksaan awal komponen csi-provisioner berhasil, tetapi peningkatan gagal

Submit a ticket untuk meminta bantuan dalam peningkatan manual.

Peningkatan komponen csi-provisioner gagal karena jumlah node kluster tidak memenuhi persyaratan

Gejala

  • Gejala 1: Pemeriksaan awal komponen csi-provisioner gagal dengan pesan kesalahan yang menunjukkan bahwa jumlah node kluster tidak memenuhi persyaratan.

  • Gejala 2: Pemeriksaan awal dan peningkatan komponen csi-provisioner berhasil, tetapi Pod komponen tersebut masuk ke status CrashLoopBackOff. Log menampilkan pesan kesalahan serupa berikut 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

  • Penyebab Gejala 1: Untuk memastikan Ketersediaan tinggi, csi-provisioner menjalankan Pod primer dan sekunder yang harus diterapkan pada node berbeda. Peningkatan komponen gagal jika kluster hanya memiliki satu node.

  • Penyebab Gejala 2: Penguatan Keamanan diaktifkan pada node tempat Pod csi-provisioner berjalan. Mode ini memblokir akses ke server metadata pada node, yang menyebabkan kesalahan tersebut.

Solusi

  • Solusi untuk Gejala 1: Perbarui komponen csi-provisioner. Untuk informasi lebih lanjut, lihat Mengelola komponen csi-plugin dan csi-provisioner.

  • Solusi untuk Gejala 2: Nonaktifkan Penguatan Keamanan pada node. CSI memerlukan akses ke metadata node.

Peningkatan komponen csi-provisioner gagal karena perubahan properti StorageClass

Gejala

Pemeriksaan awal komponen csi-provisioner gagal dengan pesan kesalahan yang menunjukkan bahwa properti StorageClass tidak sesuai harapan.

Penyebab

Properti StorageClass default telah diubah. Hal ini dapat terjadi jika Anda menghapus lalu membuat ulang StorageClass dengan nama yang sama. Properti StorageClass bersifat immutable. Jika Anda mengubahnya, peningkatan komponen akan gagal.

Solusi

Anda harus menghapus StorageClass default di kluster, seperti alicloud-disk-essd, alicloud-disk-available, alicloud-disk-efficiency, alicloud-disk-ssd, dan alicloud-disk-topology. Penghapusan ini tidak memengaruhi aplikasi yang sudah ada. Setelah Anda menghapus StorageClass tersebut, coba instal ulang komponen csi-provisioner. Setelah instalasi selesai, sistem akan membuat ulang StorageClass tersebut secara otomatis. Tidak diperlukan tindakan lebih lanjut.

Penting

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

Referensi

  • Untuk informasi lebih lanjut tentang CSI, lihat alibaba-cloud-csi-driver.

  • Untuk informasi lebih lanjut tentang cara menginstal dan menguninstall komponen, lihat Komponen.