Mulai versi 1.26, GKE di AWS secara otomatis mengaktifkan Penonaktifan Node Graceful. Fitur ini mengelola penghentian Pod secara halus selama penonaktifan node. Penghentian tuntas memungkinkan Pod menyimpan statusnya, dan melepaskan resource sebelum node dinonaktifkan. Metode penghentian Pod ini meminimalkan risiko kehilangan data. Hal ini juga meminimalkan risiko gangguan pada Pod dan layanan lain yang mengandalkan atau berinteraksi dengan Pod yang dimatikan, sehingga meningkatkan ketahanan cluster Anda.
Cara kerjanya
Peristiwa seperti pemeliharaan terjadwal, penskalaan node, atau masalah hardware,
akan memicu penonaktifan node. Komponen kubelet
mendeteksi peristiwa dan
memulai proses penghentian node tuntas dengan menginstruksikan systemd
untuk
menunda penonaktifan sistem selama durasi yang ditentukan. Penundaan ini memberi node
waktu untuk menguras dan mengeluarkan Pod yang berjalan di atasnya.
Tujuan penghentian node halus adalah untuk menghentikan Pod sistem dan non-sistem penting dengan baik sebelum node dimatikan. Setelan default berikut digunakan:
ShutdownGracePeriod
: 30 detikShutdownGracePeriodCriticalPods
: 15 detik
Setelan ini memberikan waktu 15 detik kepada Pod non-sistem untuk berhenti dengan baik sebelum dihentikan secara paksa. Pod sistem penting memiliki waktu 15 detik untuk dimatikan setelah Pod non-sistem dihentikan. Namun, karena fitur ini beroperasi berdasarkan upaya terbaik, ada kemungkinan bahwa node mungkin tidak dapat dinonaktifkan dengan baik dalam periode 30 detik yang ditentukan.
Pemicu dan batasan
Peristiwa yang memicu penonaktifan node halus mencakup peristiwa yang direncanakan seperti berikut:
- Penonaktifan atas perintah pengguna
- Penghentian instance
- Pemeliharaan terjadwal
- Menurunkan skala cluster
Dalam skenario ini, kubelet
mendeteksi peristiwa penonaktifan node dan memulai proses penonaktifan node halus.
Sebaliknya, penonaktifan node halus tidak dapat diaktifkan saat perintah penonaktifan
tidak memicu mekanisme kunci inhibitor systemd
yang diandalkan oleh
komponen kubelet
. Contoh situasi semacam ini mencakup
sebagai berikut:
- Pemutusan jaringan
- Hardware bermasalah
- Sumber daya tidak mencukupi seperti memori atau CPU
- Pemadaman listrik yang tidak terduga.
Dalam kasus ini, node mungkin mati secara tiba-tiba, yang berpotensi menyebabkan gangguan atau kehilangan data.