Setelah mengaktifkan fitur kelompok node terkelola, Anda dapat mengaktifkan perbaikan otomatis node. Alibaba Cloud Container Service for Kubernetes (ACK) akan secara otomatis memantau kesehatan node dan memicu tugas self-healing saat mendeteksi masalah, sehingga menyederhanakan operasi dan pemeliharaan node. Namun, karena kompleksitas potensi kegagalan, perbaikan otomatis tidak dapat menangani semua skenario gangguan. Beberapa masalah serius atau kompleks mungkin tetap memerlukan intervensi manual.
Cara kerja
Alur kerja untuk deteksi gangguan, notifikasi, dan perbaikan otomatis node adalah sebagai berikut:

Diagnosis dan deteksi gangguan
ACK menggunakan komponen ack-node-problem-detector (NPD) untuk memeriksa pengecualian pada node. Jika sebuah node menjadi tidak sehat dan tetap dalam kondisi tersebut selama periode tertentu, ACK menganggap node tersebut mengalami kegagalan.
Notifikasi gangguan
Saat gangguan terdeteksi, ACK menghasilkan kondisi node dan event Kubernetes. Konfigurasikan alert di Event Center untuk menerima notifikasi.
(Untuk skenario dedicated GPU) Isolasi gangguan
Setelah pengecualian GPU terdeteksi, ACK mengisolasi kartu GPU yang bermasalah.
Untuk informasi lebih lanjut tentang deteksi gangguan GPU dan isolasi otomatis, lihat GPU exception detection and automatic isolation.
Proses perbaikan otomatis node
Pengecualian sistem dan komponen Kubernetes | Pengecualian instans node |
1. ACK memperbaiki sistem dan komponen Kubernetes yang bermasalah. Misalnya, ACK dapat melakukan restart kubelet atau runtime kontainer. | 1. ACK secara otomatis menambahkan taint ke node yang bermasalah. |
Jika kluster berisi beberapa kelompok node, ACK memperbaikinya secara serial, satu kelompok node dalam satu waktu.
Jika kelompok node berisi beberapa node yang tidak sehat, ACK memperbaikinya secara serial, satu per satu. Jika suatu node gagal diperbaiki, ACK menghentikan proses perbaikan otomatis untuk semua node bermasalah lainnya dalam kelompok node tersebut.
Sebelum memulai
Fitur ini memerlukan Event Center untuk menerima alert terkait event kelompok node dan komponen ack-node-problem-detector untuk mendeteksi pengecualian 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-fitur berikut sedang dirilis secara bertahap dan mungkin memiliki jadwal peluncuran yang berbeda. Untuk menggunakannya, submit a ticket untuk meminta akses.
Perbaikan otomatis untuk pengecualian instans node: Fitur ini berbasis allowlist.
Perbaikan otomatis node untuk kelompok node Lingjun: Fitur ini berbasis allowlist.
Kumpulan aturan alert: Setelah mengaktifkan perbaikan otomatis node, kami merekomendasikan untuk mengaktifkan manajemen alert dan mengaktifkan Cluster Node auto repair Alert Rule Set serta Cluster GPU Monitoring Alert Rule Set. Hal ini memastikan Anda menerima alert ketika terjadi pengecualian. Kumpulan aturan terkait sedang dalam rilis bertahap dan mungkin belum terlihat.
Untuk mempelajari cara mengaktifkan kumpulan aturan tersebut, lihat Container Service Alert Management.
Versi NPD: 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.
Aktifkan perbaikan otomatis saat membuat kelompok node
Masuk ke Konsol ACK dan pilih Clusters di panel navigasi kiri.
Pada halaman Clusters, klik nama kluster target. 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: Allow Node Restart to Repair System And Kubernetes Component Anomalies dan Repair Nodes Only After Acquiring Permissions. 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.
Aktifkan perbaikan otomatis untuk kelompok node yang sudah ada
Masuk ke Konsol ACK dan pilih Clusters di panel navigasi kiri.
Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Nodes > Node Pools.
Dalam daftar kelompok node, temukan kelompok node target, lalu di kolom Actions klik
> Enable Management (untuk kelompok node standar) atau Configure Managed Node (untuk kelompok node terkelola). Di bagian Configure Managed Node Pool, pilih Custom Node Management. Aktifkan Auto Repair dan konfigurasikan opsi perbaikan: Allow Node Restart to Repair System And Kubernetes Component Anomalies dan Repair Nodes Only After Acquiring Permissions. 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.
Pengecualian sistem dan komponen Kubernetes
Proses perbaikan
ACK memulai tugas perbaikan berdasarkan informasi seperti condition node. Jalankan perintah kubectl describe node untuk melihat status node di bidang condition.
Ketika ACK mendeteksi pengecualian sistem atau komponen Kubernetes yang berlangsung melebihi ambang batas tertentu, ACK secara otomatis memulai proses perbaikan, yang untuk skenario ini adalah sebagai berikut:
ACK mencoba memperbaiki sistem dan komponen Kubernetes yang bermasalah. Misalnya, ACK dapat melakukan restart kubelet atau runtime kontainer.
Jika opsi Allow Node Restart to Repair System And Kubernetes Component Anomalies diaktifkan dan tindakan perbaikan awal gagal, ACK melakukan langkah-langkah berikut:
ACK secara otomatis menandai node yang bermasalah sebagai unschedulable.
ACK melakukan drain pada node yang bermasalah yang memerlukan restart. Operasi drain akan timeout setelah 30 menit.
Saat melakukan drain node, ACK mengeluarkan pod sambil menghormati Pod Disruption Budgets (PDBs) yang dikonfigurasi. Untuk memastikan ketersediaan layanan yang 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 restart node.
Ketika status node kembali normal, ACK menjadikan node tersebut schedulable kembali.
Jika node sudah dalam keadaan unschedulable sebelum proses dimulai, ACK tidak akan secara otomatis menjadikannya schedulable setelah perbaikan.
Kondisi node yang memicu perbaikan otomatis
Kondisi node | Deskripsi | Tingkat risiko | Ambang batas | tindakan perbaikan |
KubeletNotReady(KubeletHung) | kubelet berhenti secara tak terduga, menyebabkan node melaporkan status | Tinggi | 180s | 1. Restart kubelet. |
KubeletNotReady(PLEG) | Pemeriksaan kesehatan PLEG gagal, menyebabkan node melaporkan status | Sedang | 180s | 1. Restart containerd atau Docker. |
KubeletNotReady(SandboxError) | PodSandbox tidak ditemukan, sehingga kubelet tidak dapat dimulai dengan benar. | Tinggi | 180s | 1. Hapus kontainer sandbox yang sesuai. |
RuntimeOffline | containerd atau Docker berhenti, sehingga node tidak tersedia. | Tinggi | 90s | 1. Restart containerd atau Docker. |
NTPProblem | Layanan sinkronisasi waktu (ntpd atau chronyd) tidak normal. | Tinggi | 10s | Restart ntpd atau chronyd. |
SystemdOffline | Status Systemd tidak normal, sehingga kontainer tidak dapat dimulai atau dihentikan. | Tinggi | 90s | Jika Allow Node Restart to Repair System And Kubernetes Component Anomalies diaktifkan, restart instans ECS. |
ReadonlyFilesystem | Sistem file node menjadi read-only. | Tinggi | 90s | Jika Allow Node Restart to Repair System And Kubernetes Component Anomalies diaktifkan, restart instans ECS. |
Pengecualian instans node
Pastikan Anda telah menyelesaikan persiapan yang dijelaskan di Before you begin.
Proses perbaikan
Ketika node Lingjun mengalami kegagalan dan memerlukan perbaikan perangkat keras, proses perbaikan akan redeploy node tersebut dan menghapus semua data pada disk lokalnya. Dalam skenario ini, kami merekomendasikan mengaktifkan opsi Repair Nodes Only After Acquiring Permissions untuk kelompok node agar Anda dapat melakukan backup data sebelum memberikan otorisasi perbaikan.
Dalam kasus pengecualian instans node, proses perbaikan otomatis adalah sebagai berikut.
ACK secara otomatis memicu proses perbaikan berikut 5 menit setelah terjadi pengecualian instans node.
Setelah mendeteksi pengecualian, ACK menambahkan taint berikut ke node yang bermasalah:
Key: alibabacloud.com/node-needrepair
Value: Unschedulable
Effect: NoSchedule
Jika opsi 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 bermasalah.Anda dapat menangani pod yang berjalan di node tersebut atau melakukan backup data terlebih dahulu. Setelah selesai, berikan 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 opsi 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 akan timeout setelah 30 menit.
Saat melakukan drain node, ACK mengeluarkan pod sambil menghormati Pod Disruption Budgets (PDBs) yang dikonfigurasi. Untuk memastikan ketersediaan layanan yang 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 tindakan perbaikan, seperti restart node atau memulai perbaikan perangkat keras.
ACK memeriksa apakah status node telah kembali normal.
Jika gangguan teratasi, ACK menghapus taint, dan node kembali ke kondisi normal.
Jika gangguan 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 skenario dedicated GPU) Ketika status kartu GPU kembali normal, ACK menghapus isolasinya.
Kondisi node yang memicu perbaikan otomatis
Jika perbaikan perangkat keras dilakukan pada node Lingjun, Anda harus secara manual menghapus node tersebut dari kelompok node 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.
Kondisi node | Deskripsi | Tindakan perbaikan |
| Menunjukkan kesalahan perangkat keras NVLink yang fatal. Kegagalan parah ini memerlukan perbaikan offline. | Perbaikan perangkat keras |
| Menunjukkan GPU "terlepas dari bus"—artinya GPU tidak lagi terdeteksi oleh sistem. Kegagalan perangkat keras parah ini memerlukan perbaikan offline. | Perbaikan perangkat keras |
| GPU gagal melakukan remapping baris. | Perbaikan perangkat keras |
| GPU terlepas dari bus atau menjadi tidak dapat diakses. | Perbaikan perangkat keras |
| infoROM rusak. | Perbaikan perangkat keras |
| Kabel daya eksternal perangkat tidak terpasang dengan benar. | Perbaikan perangkat keras |
| Menunjukkan kesalahan ECC yang tidak terkandung. Semua aplikasi pada GPU terpengaruh. GPU harus di-reset sebelum aplikasi dapat dijalankan ulang. | Restart node |
| Menunjukkan Double Bit ECC Error (DBE). Kesalahan yang tidak dapat diperbaiki ini memerlukan reset GPU atau restart node untuk membersihkannya. | Restart node |
| Terjadi timeout saat menunggu respons inti GSP terhadap pesan RPC. | Restart node |
| Menunjukkan kesalahan ECC yang tidak pulih. Driver mendeteksi kesalahan yang tidak dapat diperbaiki pada memori GPU, sehingga memerlukan reset GPU. | Restart node |
| Terjadi kesalahan pada kode yang berjalan di inti GSP GPU. | Restart node |
| GPU memiliki halaman yang ditunda untuk pensiun yang memerlukan reset GPU agar berlaku. | Restart node |
| GPU memiliki kesalahan yang tidak dapat diperbaiki dan tidak terkandung yang memerlukan reset GPU untuk pemulihan. | Restart node |
| Menunjukkan kesalahan Graphics Engine selama context switch. Kesalahan yang tidak dapat diperbaiki ini memerlukan reset GPU atau restart node. | Restart node |
| Menunjukkan breakpoint atau peringatan mikrokontroler internal. Kesalahan yang tidak dapat diperbaiki ini memerlukan reset GPU atau restart node. | Restart node |
| Menunjukkan penghentian mikrokontroler internal. Kesalahan yang tidak dapat diperbaiki ini memerlukan reset GPU atau restart node. | Restart node |
| Menunjukkan kesalahan kelas Graphics Engine. Kesalahan yang tidak dapat diperbaiki ini memerlukan reset GPU atau restart node. | 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.
Status node selama proses perbaikan otomatis
Selama tugas perbaikan sedang berlangsung, status node adalah Repairing.
Jika perbaikan selesai dan gangguan teratasi, node kembali ke kondisi normal.
Jika perbaikan selesai tetapi gangguan tetap ada, status node diatur menjadi Recovery failed.
Node dalam status Recovery failed tidak akan memicu operasi perbaikan otomatis lainnya hingga gangguan dasarnya teratasi.
Lihat event perbaikan otomatis node
Ketika ACK memicu operasi perbaikan otomatis node, ACK mencatat event terkait di Event Center. Di halaman detail kluster Anda, pilih Operations > Event Center untuk melihat catatan pemulihan otomatis dan tindakan spesifik yang diambil. Anda dapat berlangganan event ini sebagaimana dijelaskan di Event monitoring.
Event | Level | Deskripsi |
| Normal | Perbaikan otomatis node telah dimulai. |
| Normal | Tindakan perbaikan otomatis node telah dilakukan, seperti restart kubelet. |
| Normal | Perbaikan otomatis node berhasil. |
| Warning | Perbaikan otomatis node gagal. Untuk troubleshooting, lihat bagian FAQ di bawah ini. |
| 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 menangani semua kegagalan. Ketika tugas perbaikan otomatis gagal atau gangguan tetap ada setelah tugas selesai, ACK mengatur status node menjadi Recovery failed. Jika suatu node gagal diperbaiki, ACK menghentikan proses perbaikan otomatis untuk node bermasalah lainnya dalam kelompok node tersebut hingga gangguan awal teratasi. Submit a ticket untuk menghubungi dukungan teknis.
Dokumen terkait
Kami merekomendasikan mengaktifkan NPD dan memantau event kluster melalui Event Center. Untuk informasi lebih lanjut, lihat Event monitoring.
Untuk informasi lebih lanjut tentang deteksi gangguan GPU, lihat GPU exception detection and automatic isolation dan Diagnose GPU node issues.
Untuk menyelesaikan masalah node dengan menghapus node yang bermasalah dan menambahkannya kembali, ikuti prosedur yang didokumentasikan di Konsol ACK untuk mencegah perilaku tak terduga. Untuk informasi lebih lanjut, lihat Remove a node dan Add existing nodes.