
Panduan Pod Disruption Budget & Graceful Shutdown Kubernetes 2026: Jaga SLA Saat Node Drain
3/4/2026
Keyword: pod disruption budget,pdb kubernetes,graceful shutdown,kubernetes drain,high availability,devops saas,rolling update,readiness probe,prestop hook,termination grace period,cluster upgrade,workload reliability,zero downtime deployment,pod lifecycle,kubernetes best practices
Mengapa Pod Disruption Budget penting untuk SaaS?
Di Kubernetes, voluntary disruption seperti node drain saat upgrade atau autoscaling bisa membuat pod turun bersamaan. Pod Disruption Budget (PDB) memberi batas aman agar hanya sejumlah pod yang boleh terganggu pada waktu yang sama. Ini membantu menjaga SLA saat cluster dikelola rutin, terutama untuk aplikasi SaaS dengan trafik stabil.
Konsep inti: voluntary vs involuntary disruption
Kubernetes membedakan gangguan yang involuntary (misalnya kegagalan node) dan voluntary (misalnya drain atau scale-down). PDB hanya membatasi voluntary disruption. Artinya, PDB bukan pengganti replikasi atau toleransi kegagalan, melainkan guardrail agar operasi rutin tidak mematikan terlalu banyak pod sekaligus.
Cara kerja PDB dalam praktik
- minAvailable: jumlah minimum pod yang harus tetap tersedia.
- maxUnavailable: jumlah maksimum pod yang boleh tidak tersedia.
- PDB diikat ke workload lewat
selectorlabel.
Jika cluster admin melakukan drain dan jumlah pod yang tersisa melanggar PDB, drain akan tertunda sampai kapasitas cukup.
Checklist merancang PDB yang sehat
1) Hitung kapasitas minimum layanan
Tentukan berapa pod minimum agar latensi tetap aman. Misalnya, jika rata-rata 10 pod dan Anda bisa turun 2 pod, gunakan minAvailable: 8 atau maxUnavailable: 2.
2) Pastikan readiness probe akurat
Pod yang belum siap tidak dihitung tersedia. Readiness probe yang terlalu ketat bisa membuat PDB selalu “merah”.
3) Perhatikan workload stateful
Untuk database atau sistem quorum (mis. etcd), jangan biarkan PDB melanggar batas quorum. Praktik umum adalah maxUnavailable: 1.
Graceful shutdown: pasangan wajib PDB
PDB menjaga jumlah pod yang aman, sementara graceful shutdown memastikan pod yang dihentikan tidak memutus request aktif. Kombinasi keduanya memberi pengalaman zero-downtime.
Komponen graceful shutdown yang sering dipakai
- preStop hook untuk melakukan drain koneksi atau menutup worker.
- terminationGracePeriodSeconds yang cukup agar proses selesai dengan aman.
- readiness probe yang segera menjadi not ready ketika shutdown dimulai.
Langkah implementasi ringkas (praktis)
- Audit jumlah pod minimum agar SLA tetap aman.
- Tambahkan PDB dengan
minAvailableataumaxUnavailable. - Perbaiki readiness & liveness probe supaya reflektif terhadap kondisi nyata.
- Tambahkan preStop hook + grace period untuk menyelesaikan request yang sedang berjalan.
- Uji dengan kubectl drain di environment staging.
Kesalahan umum yang perlu dihindari
- PDB terlalu ketat: drain tidak pernah selesai karena minAvailable terlalu tinggi.
- Readiness tidak akurat: pod dianggap unavailable padahal sebenarnya siap melayani.
- Grace period terlalu pendek: request terputus dan error meningkat saat rolling update.
Referensi dan sumber lanjut
Rujukan utama dapat dibaca di Kubernetes Docs — Pod Disruption Budget. Untuk konteks jenis gangguan, lihat Disruptions, serta detail proses terminasi pod pada Pod Lifecycle.
Penutup
Dengan PDB yang tepat dan graceful shutdown yang konsisten, tim DevOps bisa melakukan upgrade cluster tanpa mengorbankan ketersediaan aplikasi SaaS. Fokus pada kapasitas minimum, readiness yang benar, dan proses shutdown yang aman adalah kunci menjaga SLA tetap stabil di 2026.
Sumber referensi awal: https://kubernetes.io/docs/tasks/run-application/configure-pdb/