Setelah mengaktifkan fitur kelompok node terkelola, Anda dapat menyalakan perbaikan otomatis node. Container Service for Kubernetes (ACK) kemudian secara terus-menerus memantau kesehatan node dan memicu tugas self-healing saat mendeteksi masalah, sehingga mengurangi beban operasional pemeliharaan manual node. Namun, karena beberapa kegagalan terlalu kompleks atau parah untuk dipulihkan secara otomatis, intervensi manual mungkin tetap diperlukan.
Cara kerja
Perbaikan otomatis node mengikuti alur kerja empat tahap: deteksi kesalahan, notifikasi, isolasi kesalahan GPU opsional, dan perbaikan otomatis.
Fault diagnosis and detection ACK menggunakan add-on ack-node-problem-detector (NPD) untuk memeriksa pengecualian node. Jika sebuah node menjadi tidak sehat dan tetap dalam kondisi tersebut selama periode tertentu, ACK menganggap node tersebut telah gagal.
Fault notification Saat kesalahan terdeteksi, ACK menghasilkan kondisi node dan event Kubernetes. Konfigurasikan alert di Event Center untuk menerima notifikasi.
(Untuk exclusive GPUs ) Fault isolation Setelah pengecualian GPU terdeteksi, ACK mengisolasi kartu GPU yang rusak. > Untuk informasi lebih lanjut tentang deteksi kesalahan GPU dan isolasi otomatis, lihat GPU exception detection and automatic isolation.
Node auto repair process Proses perbaikan berbeda tergantung pada jenis pengecualian:
System and Kubernetes add-on exceptions: ACK memperbaiki sistem dan add-on Kubernetes yang rusak—misalnya, dengan merestart kubelet atau runtime kontainer. Jika Reboot Node on System/Kubernetes Component Failure diizinkan dan perbaikan awal gagal, ACK menandai node sebagai unschedulable, melakukan drain, merestartnya, lalu menjadikannya schedulable kembali ketika node pulih. Untuk proses lengkapnya, lihat System and Kubernetes add-on anomalies.
Node instance exceptions: ACK menambahkan taint ke node yang rusak, secara opsional menunggu otorisasi (jika Repair Nodes Only After Acquiring Permissions diaktifkan), melakukan drain pada node, lalu menjalankan aksi perbaikan seperti merestart node atau memulai perbaikan perangkat keras. Saat node pulih, ACK menghapus taint tersebut. Untuk proses lengkapnya, lihat Node instance anomalies.
Serial repair behavior
ACK memperbaiki node secara serial sebagai mekanisme keamanan untuk mencegah gangguan berantai:
Jika kluster berisi beberapa kelompok node, ACK memperbaikinya satu kelompok node dalam satu waktu.
Jika kelompok node berisi beberapa node yang tidak sehat, ACK memperbaikinya satu per satu. Jika suatu node gagal dipulihkan, ACK menghentikan proses perbaikan otomatis untuk semua node rusak lainnya dalam kelompok node tersebut.
Sebelum memulai
Prasyarat
Fitur ini memerlukan add-on ack-node-problem-detector untuk mendeteksi pengecualian node dan Event Center untuk menerima alert terkait event kelompok node. Untuk informasi lebih lanjut, lihat Event monitoring.
Fitur ini hanya tersedia untuk kluster ACK yang dikelola dan didukung untuk kelompok node terkelola serta kelompok node Lingjun.
Fitur rilis bertahap
Fitur-fitur berikut sedang dirilis secara bertahap dan mungkin memiliki jadwal peluncuran yang berbeda. Untuk menggunakannya, submit a ticket untuk meminta akses.
Auto repair for node instance exceptions: Fitur ini berbasis allowlist.
Node auto repair for Lingjun node pools: Fitur ini berbasis allowlist.
Alert rule sets: Setelah mengaktifkan perbaikan otomatis node, kami merekomendasikan mengaktifkan manajemen alert dan mengaktifkan Cluster Node auto repair Alert Rule Set dan Cluster GPU Monitoring Alert Rule Set. Hal ini memastikan Anda menerima notifikasi saat terjadi pengecualian. Set aturan terkait sedang dalam rilis bertahap dan mungkin belum terlihat. > Untuk mempelajari cara mengaktifkan set aturan tersebut, lihat Container Service Alert Management.
NPD version: Perbaikan otomatis untuk pengecualian instans node memerlukan NPD versi 1.2.26 atau lebih baru. Versi 1.2.26 saat ini sedang dalam rilis bertahap.
Konfigurasi perbaikan otomatis node
Aktifkan dan konfigurasikan perbaikan otomatis node untuk kelompok node baru atau yang sudah ada melalui konfigurasi terkelolanya. Langkah-langkah untuk kelompok node dan kelompok node Lingjun serupa. Langkah-langkah berikut menggunakan kelompok node standar sebagai contoh.
Kelompok node baru
Login ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang akan dikelola lalu klik namanya. Di panel navigasi kiri, pilih Nodes > Node Pools.
Pada halaman Node Pools, klik Create Node Pool. Di bagian Configure Managed Node Pool, pilih Custom Node Management. Aktifkan Auto Repair dan konfigurasikan opsi perbaikan Reboot Node on System/Kubernetes Component Failure. Ikuti petunjuk di layar untuk menyelesaikan pembuatan kelompok node. Untuk deskripsi lengkap opsi konfigurasi, lihat Create and manage a node pool. Untuk pertimbangan penting terkait restart node dan otorisasi, lihat bagian di bawah ini.

Kelompok node yang sudah ada
Login ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang akan dikelola lalu klik namanya. Di panel navigasi kiri, pilih Nodes > Node Pools.
Dalam daftar kelompok node, temukan kelompok node target. Di kolom Actions, klik
> Enable Managed Node Pool (untuk kelompok node biasa) atau Configure Managed Node Pool (untuk kelompok node terkelola). Di bagian Configure Managed Node Pool, pilih Custom Node Management. Aktifkan Auto Repair dan konfigurasikan opsi perbaikan Reboot Node on System/Kubernetes Component Failure. Ikuti petunjuk di layar untuk mengirimkan konfigurasi. Untuk deskripsi lengkap opsi konfigurasi, lihat Create and manage a node pool. Untuk pertimbangan penting terkait restart node dan otorisasi, lihat bagian di bawah ini.
System and Kubernetes add-on anomalies
Detailed repair process
ACK memulai tugas perbaikan berdasarkan informasi seperti condition node. Jalankan perintah kubectl describe node untuk melihat status node di bidang condition.
Saat ACK mendeteksi pengecualian sistem atau add-on Kubernetes yang berlangsung melebihi ambang batas tertentu, proses perbaikan otomatis dimulai:
ACK mencoba memperbaiki sistem dan add-on Kubernetes yang rusak. Misalnya, merestart kubelet atau runtime kontainer.
Jika Reboot Node on System/Kubernetes Component Failure diizinkan dan tindakan perbaikan awal gagal, ACK melakukan langkah-langkah berikut:
ACK secara otomatis menandai node yang rusak sebagai unschedulable.
ACK melakukan drain pada node yang rusak yang memerlukan restart. Operasi drain timeout setelah 30 menit. Saat melakukan drain node, ACK mengusir pod sambil menghormati Pod Disruption Budgets (PDBs) yang dikonfigurasi. Untuk memastikan ketersediaan layanan tinggi, kami merekomendasikan men-deploy beban kerja Anda dengan beberapa replika di berbagai node. Selain itu, konfigurasikan PDB untuk layanan kritis guna mengontrol gangguan bersamaan. Jika drain gagal, ACK tetap melanjutkan ke langkah berikutnya.
ACK merestart node tersebut.
Saat status node kembali normal, ACK menjadikan node tersebut schedulable kembali. Jika node sudah unschedulable sebelum proses dimulai, ACK tidak akan secara otomatis menjadikannya schedulable setelah perbaikan.
Conditions that trigger auto repair
| Node condition | Description | Risk level | Threshold | Repair action |
|---|---|---|---|---|
KubeletNotReady(KubeletHung) | Kubelet berhenti secara tak terduga, menyebabkan node melaporkan status NotReady. | High | 180s | 1. Restart kubelet. 2. Jika Reboot Node on System/Kubernetes Component Failure diizinkan, restart instans ECS. |
KubeletNotReady(PLEG) | Pemeriksaan kesehatan PLEG gagal, menyebabkan node melaporkan status NotReady. | Medium | 180s | 1. Restart containerd atau Docker. 2. Restart kubelet. 3. Jika Reboot Node on System/Kubernetes Component Failure diizinkan, restart instans ECS. |
KubeletNotReady(SandboxError) | PodSandbox tidak ditemukan, sehingga kubelet tidak dapat dimulai dengan benar. | High | 180s | 1. Hapus kontainer sandbox terkait. 2. Restart kubelet. |
RuntimeOffline | containerd atau Docker berhenti, membuat node tidak tersedia. | High | 90s | 1. Restart containerd atau Docker. 2. Jika Reboot Node on System/Kubernetes Component Failure diizinkan, restart instans ECS. |
NTPProblem | Layanan sinkronisasi waktu (ntpd atau chronyd) tidak normal. | High | 10s | Restart ntpd atau chronyd. |
SystemdOffline | Status Systemd tidak normal, mencegah kontainer dimulai atau dihentikan. | High | 90s | Jika Reboot Node on System/Kubernetes Component Failure diizinkan, restart instans ECS. |
ReadonlyFilesystem | Sistem file node menjadi read-only. | High | 90s | Jika Reboot Node on System/Kubernetes Component Failure diizinkan, restart instans ECS. |
Node instance anomalies
Pastikan Anda telah menyelesaikan persiapan yang dijelaskan di Before you begin.
Detailed repair process
Saat node Lingjun gagal dan memerlukan perbaikan perangkat keras, proses perbaikan akan redeploy node tersebut dan menghapus semua data pada disk lokalnya. Dalam skenario ini, kami merekomendasikan mengaktifkan Repair Nodes Only After Acquiring Permissions untuk kelompok node agar Anda dapat melakukan backup data sebelum memberikan otorisasi perbaikan.
ACK secara otomatis memicu proses perbaikan berikut 5 menit setelah terjadi pengecualian instans node.
Setelah mendeteksi pengecualian, ACK menambahkan taint berikut ke node yang rusak:
Key:
alibabacloud.com/node-needrepairValue:
UnschedulableEffect:
NoSchedule
Jika Repair Nodes Only After Acquiring Permissions diaktifkan, ACK menunggu otorisasi Anda sebelum melanjutkan. > Jika Anda perlu menangani beban kerja pada node yang tidak sehat terlebih dahulu, kami merekomendasikan mengaktifkan Repair Nodes Only After Acquiring Permissions. ACK hanya akan memulai perbaikan setelah Anda memberikan otorisasi.
ACK secara otomatis menambahkan label
alibabacloud.com/node-needrepair=Inquiringke node yang rusak.Anda dapat menangani pod yang berjalan di node tersebut atau melakukan backup data terlebih dahulu. Setelah selesai, otorisasi perbaikan dengan menghapus label
alibabacloud.com/node-needrepairatau mengatur nilainya menjadiApproved(alibabacloud.com/node-needrepair=Approved).Setelah menerima otorisasi Anda, ACK melanjutkan ke langkah berikutnya.
Jika Repair Nodes Only After Acquiring Permissions tidak diaktifkan, ACK secara otomatis melanjutkan ke langkah berikutnya setelah mendeteksi pengecualian.
ACK melakukan drain pada node. Operasi drain timeout setelah 30 menit. Saat melakukan drain node, ACK mengusir pod sambil menghormati PDBs yang dikonfigurasi. Untuk memastikan ketersediaan layanan tinggi, kami merekomendasikan men-deploy beban kerja Anda dengan beberapa replika di berbagai node. Selain itu, konfigurasikan PDB untuk layanan kritis guna mengontrol gangguan bersamaan. Jika drain gagal, ACK tetap melanjutkan ke langkah berikutnya.
ACK melakukan aksi perbaikan, seperti merestart node atau memulai perbaikan perangkat keras.
ACK memeriksa apakah status node telah kembali normal.
Jika kesalahan terselesaikan, ACK menghapus taint, dan node kembali ke kondisi normal.
Jika kesalahan tetap ada atau proses perbaikan gagal, taint tidak dihapus. ACK secara berkala mengirimkan notifikasi event. Anda dapat melihat event tersebut untuk troubleshooting atau submit a ticket.
(Untuk exclusive GPUs) Saat status kartu GPU kembali normal, ACK menghapus isolasinya.
Conditions that trigger auto repair (GPU-related)
Jika perbaikan perangkat keras dilakukan pada node Lingjun, Anda harus menghapus node tersebut dari kelompok node secara manual setelah perbaikan berhasil. Kemudian, tambahkan kembali perangkat yang telah diperbaiki ke kelompok node dengan menambahkannya sebagai node yang sudah ada. Untuk informasi lebih lanjut dan pertimbangan penting, lihat Remove a node dan Add an existing Lingjun node.
Tabel berikut mencantumkan kondisi node terkait GPU yang memicu perbaikan otomatis, dikelompokkan berdasarkan aksi perbaikan.
Hardware repair conditions
Kondisi berikut memerlukan intervensi offline dan menghasilkan perbaikan perangkat keras.
| Node condition | Description |
|---|---|
NvidiaXID74Error | Menunjukkan kesalahan perangkat keras NVLink yang fatal. Kegagalan parah ini memerlukan perbaikan offline. |
NvidiaXID79Error | Menunjukkan GPU "jatuh dari bus"—artinya GPU tidak lagi terdeteksi oleh sistem. Kegagalan perangkat keras parah ini memerlukan perbaikan offline. |
NvidiaRemappingRowsFailed | GPU gagal melakukan remapping baris. |
NvidiaDeviceLost | GPU jatuh dari bus atau menjadi tidak dapat diakses. |
NvidiaInfoRomCorrupted | infoROM rusak. |
NvidiaPowerCableErr | Kabel daya eksternal perangkat tidak terpasang dengan benar. |
Node restart conditions
Kondisi berikut diselesaikan dengan merestart node.
| Node condition | Description |
|---|---|
NvidiaXID95Error | Menunjukkan kesalahan ECC yang tidak terkandung. Semua aplikasi pada GPU terpengaruh. GPU harus di-reset sebelum aplikasi dapat dijalankan ulang. |
NvidiaXID48Error | Menunjukkan Double Bit ECC Error (DBE). Kesalahan yang tidak dapat dikoreksi ini memerlukan reset GPU atau restart node untuk membersihkannya. |
NvidiaXID119Error | Terjadi timeout saat menunggu respons inti GSP terhadap pesan RPC. |
NvidiaXID140Error | Menunjukkan kesalahan ECC yang tidak pulih. Driver mendeteksi kesalahan yang tidak dapat dikoreksi pada memori GPU, sehingga memerlukan reset GPU. |
NvidiaXID120Error | Terjadi kesalahan pada kode yang berjalan di inti GSP GPU. |
NvidiaPendingRetiredPages | GPU memiliki halaman yang ditunda untuk pensiun, yang memerlukan reset GPU agar berlaku. |
NvidiaRemappingRowsRequireReset | GPU memiliki kesalahan yang tidak dapat dikoreksi dan tidak terkandung, yang memerlukan reset GPU untuk pemulihan. |
NvidiaXID44Error | Menunjukkan kesalahan Graphics Engine selama context switch. Kesalahan yang tidak dapat dikoreksi ini memerlukan reset GPU atau restart node. |
NvidiaXID61Error | Menunjukkan breakpoint atau peringatan mikrokontroler internal. Kesalahan yang tidak dapat dikoreksi ini memerlukan reset GPU atau restart node. |
NvidiaXID62Error | Menunjukkan penghentian mikrokontroler internal. Kesalahan yang tidak dapat dikoreksi ini memerlukan reset GPU atau restart node. |
NvidiaXID69Error | Menunjukkan kesalahan kelas Graphics Engine. Kesalahan yang tidak dapat dikoreksi ini memerlukan reset GPU atau restart node. |
Untuk informasi lebih lanjut tentang item-item ini, seperti kondisi node yang dihasilkan dan apakah menghasilkan event, lihat GPU exception detection and automatic isolation.
Node status during the auto repair process
Status node di Konsol ACK mencerminkan kondisi perbaikan saat ini:
| Status | Meaning |
|---|---|
| Repairing | Tugas perbaikan sedang berlangsung. |
| Normal state | Perbaikan selesai dan kesalahan telah terselesaikan. |
| Recovery failed | Perbaikan selesai tetapi kesalahan masih ada. |
Node dalam status Recovery failed tidak akan memicu operasi perbaikan otomatis lainnya hingga kesalahan dasarnya diselesaikan.
View node auto repair events
Saat Container Service for Kubernetes (ACK) memicu operasi perbaikan otomatis pada node, sistem mencatat event terkait di Event Center. Untuk melihat catatan pemulihan otomatis dan tindakan spesifik yang diambil, buka halaman detail kluster Anda, lalu pilih Operations > Event Center. Anda dapat berlangganan ke event tersebut sebagaimana dijelaskan dalam Pemantauan event.
| Event | Level | Description |
|---|---|---|
NodeRepairStart | Normal | Perbaikan otomatis node telah dimulai. |
NodeRepairAction | Normal | Aksi perbaikan otomatis node telah dilakukan, seperti merestart kubelet. |
NodeRepairSucceed | Normal | Perbaikan otomatis node berhasil. |
NodeRepairFailed | Warning | Perbaikan otomatis node gagal. Untuk troubleshooting, lihat bagian FAQ di bawah ini. |
NodeRepairIgnore | Normal | Perbaikan otomatis node dilewati karena instans ECS tidak dalam status running. |
FAQ
Apa yang harus saya lakukan jika perbaikan otomatis node gagal?
Karena kompleksitas beberapa kegagalan, perbaikan otomatis tidak dapat menyelesaikan semua kegagalan. Saat tugas perbaikan otomatis gagal atau kesalahan tetap ada setelah tugas selesai, ACK mengatur status node menjadi Recovery failed. Jika suatu node gagal dipulihkan, ACK menghentikan proses perbaikan otomatis untuk node rusak lainnya dalam kelompok node tersebut hingga kesalahan awal diselesaikan. Submit a ticket untuk menghubungi dukungan teknis.
Dokumen terkait
Kami merekomendasikan agar Anda mengaktifkan NPD dan memantau event kluster melalui Pusat Insiden. Untuk informasi selengkapnya, lihat Pemantauan event.
Untuk informasi lebih lanjut tentang deteksi kesalahan GPU, lihat GPU exception detection and automatic isolation dan Diagnose GPU node issues.
Untuk menyelesaikan masalah node dengan menghapus node yang rusak dan menambahkannya kembali, ikuti prosedur terdokumentasi di ACK console guna mencegah perilaku tak terduga. Untuk informasi lebih lanjut, lihat Remove a node dan Add existing nodes.