Selesaikan masalah pembuatan, pemasangan, ekspansi, dan pelepasan volume disk di kluster ACK.
Navigasi FAQ
Creation
Kegagalan pembuatan PV dinamis: InvalidDataDiskCatagory.NotSupported
Gejala
Pembuatan PV gagal, dan event PVC menampilkan pesan error InvalidDataDiskCategory.NotSupported.
Penyebab
StorageClass menentukan tipe cloud disk yang tidak tersedia di zona saat ini atau inventaris tidak mencukupi.
Solusi
-
Upgrade plug-in CSI dan gunakan StorageClass
alicloud-disk-topology-alltype, atau buat StorageClass kustom dengan beberapa tipe cloud disk. Lihat Gunakan volume disk yang disediakan secara dinamis. -
Tambahkan beberapa zona ke kluster. Lihat Rekomendasi konfigurasi ketersediaan tinggi untuk volume disk.
Kegagalan pembuatan PV dinamis: Inventaris AZone tidak mencukupi
Gejala
Pembuatan PV gagal, dan event PVC menampilkan pesan error The specified AZone inventory is insufficient.
Penyebab
Pembuatan cloud disk gagal karena inventaris tidak mencukupi di zona yang ditentukan.
Solusi
-
Upgrade plug-in CSI dan gunakan StorageClass
alicloud-disk-topology-alltype, atau buat StorageClass kustom dengan beberapa tipe cloud disk. Lihat Gunakan volume disk yang disediakan secara dinamis. -
Tambahkan beberapa zona ke kluster. Lihat Rekomendasi konfigurasi ketersediaan tinggi untuk volume disk.
Kegagalan pembuatan PV dinamis: Ukuran disk tidak didukung
Gejala
Pembuatan PV dinamis gagal, dan event PVC menampilkan pesan error disk size is not supported.
Penyebab
PVC menentukan kapasitas yang tidak valid. Batas minimum bervariasi berdasarkan tipe cloud disk.
Solusi
Sesuaikan kapasitas yang dideklarasikan dalam PVC ke nilai yang didukung.
Kegagalan pembuatan PV dinamis: Menunggu konsumen pertama
Gejala
Pembuatan PV gagal saat menggunakan StorageClass dengan mode binding WaitForFirstConsumer, dan event PVC menampilkan pesan error persistentvolume-controller waiting for first consumer to be created before binding.
Penyebab
PVC belum mendeteksi node tempat pod dijadwalkan.
-
Jika Anda secara eksplisit menyetel
nodeNamedalam file YAML aplikasi, pod melewati penjadwal. Hal ini mencegah PVC menemukan node, sehingga tidak kompatibel dengan mode bindingWaitForFirstConsumer. -
Tidak ada pod yang mereferensikan PVC saat ini.
Solusi
-
Hapus bidang
nodeNamedari file YAML aplikasi dan gunakan metode penjadwalan lain. -
Buat pod yang menggunakan PVC saat ini.
Kegagalan pembuatan PV dinamis: Tidak ada kunci topologi pada CSINode
Gejala
Pembuatan PV gagal, dan event PVC menampilkan pesan error no topology key found on CSINode node-XXXX.
Penyebab
-
Penyebab 1: Plug-in CSI pada node
node-XXXXgagal memulai. -
Penyebab 2: Driver yang tidak didukung sistem digunakan untuk pemasangan. Secara default, sistem mendukung driver Disk, NAS, dan OSS.
Solusi
-
Periksa status pod.
kubectl get pods -n kube-system -o wide | grep node-XXXX-
Status abnormal: Periksa log error dengan
kubectl logs csi-plugin-xxxx -nkube-system -c csi-plugin. Ini biasanya disebabkan oleh konflik port node. Atasi sebagai berikut:-
Tutup proses yang menggunakan port tersebut.
-
Tambahkan variabel lingkungan
SERVICE_PORTke plug-in CSI untuk menentukan port baru.kubectl set env -n kube-system daemonset/csi-plugin --containers="csi-plugin" SERVICE_PORT="XXX"
-
-
Jika status normal, lanjutkan ke langkah berikutnya.
-
-
Gunakan driver sistem default, seperti Disk, NAS, atau OSS. Lihat dokumentasi Penyimpanan.
Kegagalan pembuatan PV dinamis: selfLink kosong
Gejala
Pembuatan PV gagal, dan event PVC menampilkan pesan error selfLink was empty, can't make reference.
Penyebab
-
Versi kluster dan versi plug-in CSI tidak cocok.
-
Kluster menggunakan plug-in penyimpanan FlexVolume.
Solusi
-
Upgrade versi plug-in CSI. Versi plug-in harus kompatibel dengan versi kluster. Misalnya, kluster Kubernetes 1.20 memerlukan CSI versi 1.20 atau lebih baru.
-
Jika kluster Anda menggunakan plug-in penyimpanan FlexVolume, lihat Migrasi dari FlexVolume ke CSI.
Kegagalan pembuatan PV dinamis: Kapasitas PVC < 20 GiB
StorageClass ACK default (misalnya, alicloud-disk-topology-alltype, alicloud-disk-essd) memerlukan kapasitas minimum 20 GiB. Untuk volume yang lebih kecil, buat StorageClass kustom dengan tipe disk yang mendukung kapasitas lebih rendah, seperti ESSD AutoPL atau ESSD PL0.
-
Untuk rentang kapasitas berdasarkan tipe disk, lihat Kinerja penyimpanan blok.
Mounting
Kegagalan startup pod: Konflik afinitas node volume
Gejala
Pod dengan cloud disk yang dipasang gagal memulai, dan event pod menampilkan pesan error had volume node affinity conflict.
Penyebab
Setiap PV memiliki properti nodeaffinity. Error ini terjadi ketika nodeaffinity PV bertentangan dengan nodeaffinity pod, sehingga mencegah penjadwalan.
Solusi
Pastikan nodeaffinity PV dan nodeaffinity pod konsisten.
Kegagalan startup pod: Tidak dapat menemukan disk
Gejala
Pod dengan cloud disk yang dipasang gagal memulai, dan event pod menampilkan pesan error can't find disk.
Penyebab
-
Anda mengonfigurasi PV dengan ID cloud disk yang salah atau ID cloud disk dari wilayah lain.
-
Akun Anda tidak memiliki izin untuk mengakses cloud disk, kemungkinan karena milik akun lain.
Solusi
-
Jika Anda menggunakan cloud disk yang disediakan secara statis, periksa apakah memenuhi persyaratan berikut:
-
Wilayah cloud disk sama dengan wilayah kluster.
-
ID cloud disk benar.
-
Cloud disk dan kluster dimiliki oleh Akun Alibaba Cloud yang sama.
-
-
Jika cloud disk dipasang secara dinamis, periksa izin plug-in CSI.
Periksa apakah Addon Token ada di kluster.
-
Jika Addon Token ada, periksa versi plug-in CSI di kluster, upgrade plug-in ke versi terbaru, lalu coba lagi.
-
Jika Addon Token tidak ada, AccessKey kustom dari role RAM worker node digunakan secara default. Anda perlu memeriksa izin kebijakan RAM yang sesuai.
-
Kegagalan startup pod: Tindakan attach sedang berlangsung
Gejala
Pod dengan cloud disk yang dipasang menampilkan Previous attach action is still in process tetapi berhasil memulai setelah beberapa detik.
Penyebab
Instans ECS hanya dapat menyambungkan satu cloud disk dalam satu waktu. Ketika beberapa pod yang menggunakan disk ditempatkan pada host yang sama, disk disambungkan secara berurutan. Pesan ini berarti proses penyambungan lain sedang berlangsung.
Solusi
Tidak perlu tindakan apa pun. Sistem akan mencoba ulang secara otomatis.
Kegagalan startup pod: InvalidInstanceType.NotSupportDiskCategory
Gejala
Saat Anda memulai pod dengan cloud disk yang dipasang, pesan error InvalidInstanceType.NotSupportDiskCategory ditampilkan.
Penyebab
Pod dijadwalkan ke node ECS yang tipe instansnya tidak mendukung tipe cloud disk ini.
Solusi
Coba salah satu solusi berikut:
-
Verifikasi bahwa kluster memiliki node ECS yang tipe instansnya mendukung tipe cloud disk ini, dan pod dapat dijadwalkan ke sana.
-
Jika tidak ada tipe instans node yang mendukung tipe cloud disk ini, ganti ke tipe disk yang kompatibel.
Untuk kompatibilitas cloud disk dan tipe instans, lihat Famili instans.
Kegagalan startup pod: Driver CSI tidak terdaftar
Gejala
Saat Anda memulai pod, peringatan berikut ditampilkan.
Warning FailedMount 98s (x9 over 3m45s) kubelet, cn-zhangjiakou.172.20.XX.XX MountVolume.MountDevice failed for volume "d-xxxxxxx" : kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name diskplugin.csi.alibabacloud.com not found in the list of registered CSI drivers
Penyebab
-
Ini biasanya terjadi pada node baru di mana pod aplikasi mencoba memasang volume sebelum plug-in CSI yang berjalan bersamaan selesai mendaftar.
-
Plug-in CSI pada node gagal mendaftar, kemungkinan karena kegagalan startup.
Solusi
-
Pada node yang baru ditambahkan, tidak perlu tindakan apa pun. Sistem akan mencoba ulang secara otomatis.
-
Jika plug-in CSI gagal mendaftar, periksa status dan log-nya. Jika plug-in normal, bergabunglah dengan grup pengguna DingTalk (ID: 35532895) untuk bantuan.
Kegagalan startup pod: Error Multi-Attach
Gejala
Pod yang memasang cloud disk menampilkan warning failedAttachVolume xxx xxx Multi-Attach error for volume "xxx" dalam event. Menjalankan kubectl describe pvc <pvc-name> mengungkapkan beberapa pod yang mereferensikan PVC yang sama.
Penyebab
-
Penyebab 1: Tanpa multi-attach diaktifkan, cloud disk hanya dapat dipasang ke satu pod.
-
Penyebab 2: Pod yang menggunakan PVC telah dihapus, tetapi cloud disk tidak dilepas dengan benar.
Di Konsol ECS, temukan node tempat cloud disk PVC disambungkan. Periksa log pod plug-in CSI pada node tersebut. Jika Anda melihat
Path is mounted, no remove: /var/lib/kubelet/plugins/kubernetes.io/csi/diskplugin.csi.alibabacloud.com/xxx/globalmount, verifikasi bahwa plug-in CSI secara langsung memasang HostPath/var/run:kubectl get ds -n kube-system csi-plugin -ojsonpath='{.spec.template.spec.volumes[?(@.hostPath.path=="/var/run/")]}'Output yang tidak kosong mengonfirmasi masalah ini.
Solusi
-
Solusi untuk Penyebab 1:
Pastikan hanya satu pod yang mereferensikan PVC.
-
Solusi untuk Penyebab 2:
Perbaiki manual file YAML plug-in CSI:
kubectl patch -n kube-system daemonset csi-plugin -p ' spec: template: spec: containers: - name: csi-plugin volumeMounts: - mountPath: /host/var/run/efc name: efc-metrics-dir - mountPath: /host/var/run/ossfs name: ossfs-metrics-dir - mountPath: /host/var/run/ $patch: delete volumes: - name: ossfs-metrics-dir hostPath: path: /var/run/ossfs type: DirectoryOrCreate - name: efc-metrics-dir hostPath: path: /var/run/efc type: DirectoryOrCreate - name: fuse-metrics-dir $patch: delete'
Kegagalan startup pod: Timeout pemasangan
Gejala
Anda memulai pod yang memiliki volume yang dipasang, dan event pod menampilkan pesan error Unable to attach or mount volumes: unmounted volumes=[xxx], unattached volumes=[xxx]: timed out waiting for the condition.
Penyebab
Event ini adalah pesan error yang dilaporkan oleh kubelet. Kubelet secara berkala memeriksa apakah volume yang digunakan oleh pod di semua node dalam keadaan Ready. Jika volume tidak Ready, pesan error di atas ditampilkan.
Event ini menunjukkan pemasangan belum selesai pada saat pemeriksaan. Kemungkinan penyebab:
-
Penyebab 1: Terjadi error pemasangan, tetapi event detail telah ditimpa. Hanya event error kubelet yang tersisa.
-
Penyebab 2: Kubelet mengalami timeout saat mengambil
configmap/serviceaccount defaulttoken. Ini adalah masalah jaringan node. Anda harus mencoba lagi di node berbeda. -
Penyebab 3: Saat
securityContext.fsGroupdisetel, kubelet secara rekursif mengubah kepemilikan semua file selama pemasangan. Ini lambat untuk volume dengan banyak file. -
Penyebab 4: Untuk volume yang disediakan secara statis, verifikasi bahwa bidang
driverbenar (tidak ada kesalahan pengetikan). Namadriveryang salah mencegah volume menjadi Ready.
Solusi
-
Solusi untuk Penyebab 1: Mulai ulang pod dengan menghapusnya. Temukan dan diagnosa event error yang sebenarnya.
-
Solusi untuk Penyebab 2: Jadwalkan ulang pod ke node lain. Lihat Jadwalkan aplikasi ke node tertentu.
-
Solusi untuk Penyebab 3: Untuk kluster versi 1.20+, setel
fsGroupChangePolicykeOnRootMismatch. Ini membatasi perubahan kepemilikan rekursif hanya pada pemasangan pertama ketika izin direktori root berbeda, sehingga menormalkan waktu pemasangan untuk restart pod berikutnya. Untuk informasi lebih lanjut tentang parameterfsGroupChangePolicy, lihat Konfigurasikan Konteks Keamanan untuk Pod atau Kontainer. Jika tidak cukup, gunakaninitContaineruntuk penyesuaian izin. -
Solusi untuk Penyebab 4: Periksa dan tentukan nama driver yang benar. Contoh:
-
diskplugin.csi.alibabacloud.com
-
nasplugin.csi.alibabacloud.com
-
ossplugin.csi.alibabacloud.com
-
Kegagalan startup pod: Format perangkat NVMe tidak valid
Gejala
Pod dengan cloud disk yang dipasang gagal memulai, dan event pod menampilkan pesan error validate error Device /dev/nvme1n1 has error format more than one digit locations.
Penyebab
Node adalah tipe instans berbasis NVMe (seperti g7se, r7se, c7se, atau ECS generasi ke-8), tetapi versi kluster dan plug-in CSI terlalu lama untuk mendukungnya.
Solusi
Pastikan kluster ACK Anda versi 1.20+ dan upgrade plug-in CSI ke v1.22.9-30eb0ee5-aliyun atau lebih baru. Lihat Kelola komponen.
Plug-in FlexVolume tidak didukung. Bergabunglah dengan grup pengguna DingTalk (ID: 35532895) untuk bantuan migrasi dari plug-in FlexVolume ke plug-in CSI.
Kegagalan startup pod: Konflik tugas ECS
Gejala
Pod dengan cloud disk yang dipasang gagal memulai, dan event pod menampilkan pesan error ecs task is conflicted.
Penyebab
Beberapa tugas ECS harus dilakukan secara berurutan. Ketika beberapa permintaan dikirim ke ECS secara bersamaan, terjadi error konflik tugas ECS.
Solusi
Solusi:
-
Tunggu plug-in CSI mencoba ulang secara otomatis. Setelah tugas ECS lain selesai, pemasangan akan berhasil.
Kegagalan startup pod: Sistem file rusak
Gejala
Pod dengan cloud disk yang dipasang gagal memulai, dan event pod menampilkan pesan error berikut.
wrong fs type, bad option, bad superblock on /dev/xxxxx missing codepage or helper program, or other error
Penyebab
Cloud disk tidak dapat dipasang karena sistem file-nya rusak.
Solusi
Hal ini biasanya disebabkan oleh pelepasan yang tidak tepat. Untuk mengatasi:
-
Verifikasi bahwa aplikasi memenuhi persyaratan berikut:
-
Tidak lebih dari satu pod yang memasang cloud disk yang sama.
-
Jangan menulis data selama proses pelepasan disk.
-
-
Login ke host pod dan jalankan
fsck -y /dev/xxxxxuntuk memperbaiki sistem file.Ganti
/dev/xxxxxdengan path perangkat dari event pod. Perbaikan memodifikasi metadata sistem file. Jika perbaikan gagal, sistem file menjadi rusak permanen.
Kegagalan startup pod: Melebihi jumlah volume maksimum
Gejala
Pod dengan cloud disk yang dipasang tetap dalam status Pending dan tidak dapat dijadwalkan, meskipun tipe instans ECS memungkinkan lebih banyak penyambungan disk:
0/1 nodes are available: 1 node(s) exceed max volume count.
Penyebab
Penjadwalan dibatasi oleh variabel lingkungan MAX_VOLUMES_PERNODE.
Solusi
-
Plug-in CSI v1.26.4-e3de357-aliyun+ mendukung konfigurasi jumlah disk otomatis. Hapus variabel lingkungan
MAX_VOLUMES_PERNODEdari DaemonSet plug-in CSI di kube-system untuk mengaktifkan konfigurasi otomatis berdasarkan tipe instans ECS:kubectl patch -n kube-system daemonset csi-plugin -p ' spec: template: spec: containers: - name: csi-plugin env: - name: MAX_VOLUMES_PERNODE $patch: delete' -
Untuk versi plug-in CSI sebelum v1.26.4-e3de357-aliyun, atur manual variabel lingkungan ini berdasarkan node dengan jumlah disk data yang dapat disambungkan paling sedikit.
-
Konfigurasi otomatis hanya berjalan saat startup pod plug-in CSI. Jika Anda secara manual menyambungkan atau melepas disk data, buat ulang pod plug-in CSI pada node tersebut untuk memicu ulang.
-
Konfigurasi otomatis tidak memperhitungkan volume disk yang disediakan secara statis. Jika ada, jumlah pod yang dapat dijadwalkan mungkin lebih rendah dari yang diharapkan.
Kegagalan startup pod: Batas disk instans tercapai
Gejala
Pod dengan cloud disk yang dipasang tetap dalam status ContainerCreating. Event pod:
MountVolume.MountDevice failed for volume "d-xxxx" : rpc error: code = Aborted desc = NodeStageVolume: Attach volume: d-xxxx with error: rpc error: code = Internal desc = SDK.ServerError
ErrorCode: InstanceDiskLimitExceeded
Message: The amount of the disk on instance in question reach its limits
Penyebab
Nilai variabel lingkungan MAX_VOLUMES_PERNODE terlalu tinggi.
Solusi
-
Plug-in CSI v1.26.4-e3de357-aliyun+ mendukung konfigurasi jumlah disk otomatis. Hapus variabel lingkungan
MAX_VOLUMES_PERNODEdari DaemonSet plug-in CSI di kube-system untuk mengaktifkan konfigurasi otomatis berdasarkan tipe instans ECS:kubectl patch -n kube-system daemonset csi-plugin -p ' spec: template: spec: containers: - name: csi-plugin env: - name: MAX_VOLUMES_PERNODE $patch: delete' -
Untuk versi plug-in CSI sebelum v1.26.4-e3de357-aliyun, atur manual variabel lingkungan ini berdasarkan node dengan jumlah disk data yang dapat disambungkan paling sedikit.
-
Konfigurasi otomatis hanya berjalan saat startup pod plug-in CSI. Jika Anda secara manual menyambungkan atau melepas disk data, buat ulang pod plug-in CSI pada node tersebut untuk memicu ulang.
-
Konfigurasi otomatis tidak memperhitungkan volume disk yang disediakan secara statis. Jika ada, jumlah pod yang dapat dijadwalkan mungkin lebih rendah dari yang diharapkan.
OperationDenied.HpnZoneMismatch error pada node Lingjun
Cloud disk tidak memiliki tag attachToHpnZone:XX yang diperlukan untuk node Lingjun. Tag ini hanya dapat ditambahkan saat pembuatan disk. Buat cloud disk baru dengan tag tersebut.
-
Tambahkan tag berikut selama pembuatan (tidak dapat ditambahkan nanti):
-
createdByProduct:eflo -
attachToHpnZone:XX(GantiXXdenganHpnZoneyang sebenarnya. Anda dapat menjalankan perintah untuk menanyakan node guna mendapatkan HpnZone.)
Lihat Buat disk data kosong.
-
-
Hapus PV dan PVC lama, lalu buat yang baru dengan cloud disk pengganti. Lihat Gunakan volume disk yang disediakan secara statis atau Gunakan volume disk yang disediakan secara dinamis.
Ubah konfigurasi StorageClass default
StorageClass default tidak dapat diubah.
Setelah instalasi csi-provisioner, StorageClass default (misalnya, alicloud-disk-topology-alltype) dibuat. Jangan modifikasi StorageClass default. Buat StorageClass baru dengan tipe volume atau kebijakan reclaim yang Anda inginkan sebagai gantinya.
Gunakan satu volume disk untuk beberapa aplikasi
Cloud disk menyediakan penyimpanan non-bersama. Tanpa multi-attach diaktifkan, cloud disk hanya dapat dipasang ke satu pod. Lihat Aktifkan multi-attach berbasis NVMe untuk cloud disk dan konfigurasikan reservasi.
Usage
Error I/O aplikasi pada volume disk
Gejala
Cloud disk dipasang secara normal dan aplikasi dimulai, tetapi segera setelah itu melaporkan input/output error.
Penyebab
Cloud disk yang digunakan oleh aplikasi telah dilepas atau dihapus.
Solusi
Periksa status cloud disk dan ambil tindakan berdasarkan status tersebut.
-
Identifikasi PVC dari definisi
VolumeMountpod untuk direktori mount yang terpengaruh. -
Jalankan
kubectl get pvc <pvc-name>untuk memeriksa status PVC dan catat PV yang terikat. -
Dapatkan ID cloud disk dari bidang
volumeHandledalam YAML PV. -
Di halaman EBS Konsol ECS, periksa status cloud disk berdasarkan ID cloud disk.
-
Jika cloud disk berstatus Available, artinya telah dilepas. Mulai ulang pod untuk memasang kembali.
CatatanPod berstatus Running, artinya disk dipasang lalu dilepas, kemungkinan karena beberapa pod mereferensikan disk yang sama. Jalankan
kubectl describe pvc <pvc-name>dan periksaUsedByuntuk mengonfirmasi. -
Jika cloud disk tidak ditemukan, artinya telah dirilis dan tidak dapat dipulihkan.
PentingSaat memasang ESSD, gunakan snapshot otomatis untuk melindungi data volume disk. Lihat Kehilangan data akibat penghapusan cloud disk yang tidak terduga.
-
Atur izin pengguna untuk direktori mount
Anda tidak dapat mengatur izin akses pengguna untuk cloud disk. Jika perlu mengatur izin akses pengguna untuk direktori mount, konfigurasikan securityContext untuk pod saat membuat aplikasi guna memodifikasi izin. Untuk informasi lebih lanjut, lihat Konfigurasikan Kebijakan Izin dan Perubahan Kepemilikan Volume untuk Pod.
Saat Anda mengonfigurasi
securityContext.fsgroup, kubelet secara rekursif mengubah izin file (chmod/chown) saat memasang volume. Hal ini dapat meningkatkan waktu pemasangan secara signifikan untuk volume dengan banyak file.Untuk kluster versi 1.20 atau lebih baru, kami merekomendasikan menyetel
fsGroupChangePolicykeOnRootMismatch. Ini mengoptimalkan kinerja pemasangan dengan hanya melakukan perubahan izin rekursif saat volume dipasang pertama kali dan izin direktori root tidak cocok. Jika kinerja masih menjadi masalah atau Anda memerlukan kontrol izin yang lebih granular, gunakaninitContaineruntuk mengelola izin sebelum kontainer aplikasi dimulai.Saat Pod dibuat ulang, Pod tersebut memasang kembali cloud disk asli. Jika kendala lain mencegah Pod dijadwalkan ke zona asli, Pod akan tetap dalam status Pending karena tidak dapat memasang cloud disk.
Expansion
Ekspansi volume disk otomatis
Volume disk tidak diekspansi secara otomatis. Untuk mengekspansi, perbarui kapasitas penyimpanan PVC. Lihat Ekspansi online volume disk.
Untuk mengaktifkan ekspansi otomatis, gunakan CRD untuk mengekspansi volume saat penggunaan melebihi ambang batas. Lihat Konfigurasikan ekspansi otomatis.
Untuk kluster sebelum 1.16, atau ketika persyaratan ekspansi online tidak terpenuhi (misalnya, disk dasar), ekspansi cloud disk secara langsung di Konsol ECS. Sumber daya kluster tidak terpengaruh — kapasitas PVC dan PV tetap pada ukuran sebelum ekspansi.
Kegagalan ekspansi disk: Menunggu pengguna memulai ulang pod
Gejala
Setelah memperbarui kapasitas penyimpanan PVC, bidang StorageCapacity di Status PVC tidak berubah, dan event PVC melaporkan:
Waiting for user to (re-)start a pod to finish file system resize of volume on node.
Penyebab
Ekspansi cloud disk memiliki dua langkah: ekspansi kapasitas disk melalui API ResizeDisk, lalu ekspansi sistem file. Error ini berarti langkah pertama berhasil tetapi langkah kedua gagal, menunjukkan masalah di tingkat node.
Solusi
Tentukan tipe node saat ini.
-
Jika node adalah ECI, jalankan
kubectl get configmap -n kube-system eci-profile -o jsonpath="{.data.enablePVCController}"dan verifikasi nilainya adalahtrue. Lihat parameter konfigurasi eci-profile.Jika masalah berlanjut, kirim tiket untuk bantuan.
-
Jika node adalah ECS, jalankan
kubectl get pods -n kube-system -l app=csi-plugin --field-selector=spec.nodeName=<node-name>untuk memeriksa status plug-in CSI.-
Jika plug-in CSI normal, bergabunglah dengan grup pengguna DingTalk (ID: 35532895) untuk bantuan.
-
Jika abnormal, mulai ulang pod plug-in CSI dan coba lagi. Jika masalah berlanjut, bergabunglah dengan grup pengguna DingTalk (ID: 35532895) untuk bantuan.
-
Kegagalan ekspansi disk: PVC statis atau ekspansi tidak diizinkan
Gejala
Setelah memperbarui kapasitas penyimpanan PVC, error berikut dilaporkan:
only dynamically provisioned pvc can be resized and the storageclass that provisions the pvc must support resize
Penyebab
-
Penyebab 1: PVC dan PV volume disk dibuat secara manual dengan cara statis. Parameter
storageClassNamedalam PVC tidak ditentukan, atau tidak ada StorageClass dengan nama yang ditentukan di kluster. -
Penyebab 2: Dalam StorageClass yang direferensikan oleh PVC, parameter
allowVolumeExpansiondisetel kefalse. Ekspansi tidak didukung.
Solusi
-
Solusi untuk Penyebab 1: Periksa konfigurasi
storageClassNamePVC dan pastikan StorageClass dengan nama yang sama ada di kluster. Jika tidak, buat StorageClass yang sesuai berdasarkan properti volume disk yang ada dan konfigurasikanallowVolumeExpansion: true. -
Solusi untuk Penyebab 2: StorageClass bersifat immutable. Buat StorageClass baru dengan parameter
allowVolumeExpansiondisetel ketrue. Kemudian, modifikasi PVC untuk mereferensikan StorageClass baru sebelum mengekspansi PVC.
Unmounting
Kegagalan penghapusan pod: Bukan disk portabel
Gejala
Saat Anda melepas cloud disk, pesan error The specified disk is not a portable disk ditampilkan.
Penyebab
Metode penagihan cloud disk adalah subscription. Hal ini mungkin terjadi karena membeli disk subscription atau mengubah metode penagihan saat meningkatkan instans ECS.
Solusi
Ubah metode penagihan cloud disk ke pay-as-you-go.
Kegagalan penghapusan pod: Pelepasan gagal karena pod yatim
Gejala
Pelepasan pod gagal, dan log kubelet menunjukkan pod yatim yang tidak dikelola oleh ACK.
Penyebab
Pod berhenti secara abnormal, meninggalkan titik mount volume yatim. Di Kubernetes sebelum 1.22, GC volume kubelet tidak lengkap, sehingga memerlukan pembersihan manual.
Solusi
Jalankan skrip berikut pada node bermasalah untuk membersihkan titik mount sampah.
wget https://raw.githubusercontent.com/AliyunContainerService/kubernetes-issues-solution/master/kubelet/kubelet.sh
sh kubelet.sh
Kegagalan restart pod: Kegagalan mount yang tidak dapat dipulihkan
Gejala
Setelah dihapus, pod tidak dapat memulai ulang dan melaporkan kegagalan mount yang tidak dapat dipulihkan:
Warning FailedMount 9m53s (x23 over 40m) kubelet MountVolume.SetUp failed for volume “xxxxx” : rpc error: code = Internal desc = stat /var/lib/kubelet/plugins/kubernetes.io/csi/pv/xxxxx/globalmount: no such file or directory
Lingkup
-
Versi kluster ACK adalah 1.20.4-aliyun-1.
-
Aplikasi menggunakan cloud disk sebagai media penyimpanan.
-
StatefulSet digunakan dan properti
podManagementPolicy: "Parallel"disetel.
Penyebab
Lihat Pod gagal memulai setelah restart cepat.
Solusi
-
Tambahkan node baru dan hapus yang lama. Pod yang bermasalah pulih secara otomatis. Lihat Buat dan kelola kelompok node dan Hapus node.
-
Ubah
podManagementPolicyStatefulSet ke OrderedReady atau hapus bidangpodManagementPolicy: "Parallel". -
Untuk kluster kecil:
-
Tandai node pod sebagai tidak dapat dijadwalkan dengan
cordon. -
Hapus pod dan tunggu statusnya menjadi Pending.
-
Hapus
cordondari node dan tunggu pod memulai ulang.
-
-
Untuk kluster besar, pod pulih setelah dijadwalkan ke node berbeda.
Kegagalan penghapusan pod: Target sedang digunakan
Gejala
Saat menghapus pod, event pod atau log kubelet (/var/log/messages) menunjukkan:
unmount failed, output <mount-path> target is busy
Penyebab
Proses masih menggunakan perangkat. Login ke host untuk mengidentifikasi dan menghentikan proses tersebut.
Solusi
-
Temukan perangkat blok di bawah path mount yang sesuai.
mount | grep <mount-path> /dev/vdtest <mount-path> -
Temukan ID proses yang menggunakan perangkat blok.
fuser -m /dev/vdtest -
Hentikan proses tersebut.
Cloud disk akan dilepas secara otomatis setelah proses dihentikan.
Cloud disk tetap ada setelah penghapusan PVC
Gejala
PVC dihapus, tetapi cloud disk tetap ada di Konsol ECS.
Penyebab
-
Penyebab 1:
reclaimPolicyPV adalahRetain, sehingga PV dan cloud disk tetap ada setelah penghapusan PVC. -
Penyebab 2: PVC dan PV dihapus secara bersamaan, atau PV dihapus sebelum PVC.
Solusi
-
Solusi untuk Penyebab 1: Dengan
reclaimPolicydisetel keRetain, CSI tidak menghapus PV atau cloud disk saat PVC dihapus. Hapus secara manual. -
Solusi untuk Penyebab 2: Jika PV memiliki
deleteTimestamp annotation, CSI tidak akan mereklaim cloud disk. Lihat controller. Hapus PVC saja — PV yang terikat akan dibersihkan secara otomatis.
PVC tetap ada setelah penghapusan
Gejala
Penghapusan PVC gagal bahkan dengan flag --force.
Penyebab
Pod masih menggunakan PVC, sehingga finalizer-nya mencegah penghapusan.
Solusi
-
Lihat pod yang mereferensikan PVC.
kubectl describe pvc <pvc-name> -n kube-system -
Konfirmasi bahwa pod yang mereferensikan tidak lagi digunakan, hapus pod tersebut, lalu coba hapus PVC lagi.
Other
Ubah metode penagihan volume ke subscription
Cloud disk yang digunakan sebagai volume harus menggunakan metode penagihan pay-as-you-go dan tidak dapat dikonversi ke subscription.
Identifikasi cloud disk untuk volume di Konsol ECS
Dapatkan ID cloud disk (format d-********) dan temukan di halaman EBS di Konsol ECS untuk mengidentifikasi cloud disk yang terkait.
-
Untuk PV yang dibuat secara dinamis, nama PV adalah ID cloud disk. Lihat di halaman kluster.
-
Jika nama PV bukan ID cloud disk, jalankan
kubectl get pv <pv-name> -o yaml. BidangvolumeHandleberisi ID cloud disk.