Aplikasi yang berjalan di cluster Google Kubernetes Engine (GKE) harus disiapkan untuk menghadapi gangguan seperti upgrade node dan peristiwa pemeliharaan lainnya. Aplikasi stateful, yang sering kali memerlukan waktu untuk menghentikan I/O dengan sempurna dan melepasnya dari penyimpanan, sangat rentan terhadap gangguan. Anda dapat menggunakan fitur Kubernetes seperti Pod Disruption Budgets (PDB) dan Pemeriksaan Kesiapan untuk membantu menjaga aplikasi tetap tersedia selama proses upgrade.
GKE memantau cluster Anda dan menggunakan layanan Pemberi Rekomendasi untuk memberikan panduan tentang cara mengoptimalkan penggunaan platform Anda. GKE mendeteksi peluang untuk menyiapkan workload Anda menghadapi gangguan dan memberikan panduan tentang cara mengupdate PDB atau pemeriksaan kesiapan untuk memaksimalkan ketahanan workload Anda terhadap gangguan. Misalnya, jika StatefulSet tidak dilindungi oleh PDB, cluster Anda mungkin menghapus semua Pod sekaligus selama upgrade node. Untuk menghindarinya, GKE memberikan panduan untuk membuat PDB sehingga sebagian besar Pod dapat tetap berjalan selama upgrade.
Untuk melihat kondisi tertentu saat GKE memberikan panduan terkait gangguan, lihat Saat GKE mengidentifikasi workload yang rentan terhadap gangguan.
Untuk mempelajari lebih lanjut cara mengelola insight dan rekomendasi dari Pemberi Rekomendasi, lihat Mengoptimalkan penggunaan GKE dengan insight dan rekomendasi.
Mengidentifikasi workload yang rentan terhadap gangguan
GKE menghasilkan insight yang mengidentifikasi workload cluster yang rentan terhadap gangguan. Untuk mendapatkan insight ini, ikuti petunjuk untuk melihat insight dan rekomendasi menggunakan Google Cloud CLI atau Recommender API. Gunakan subjenis yang tercantum di bagian berikut untuk memfilter insight tertentu. Insight ini tidak tersedia di Konsol Google Cloud.
Saat GKE mengidentifikasi workload yang rentan terhadap gangguan
Lihat tabel berikut untuk mengetahui skenario saat GKE memberikan insight dan rekomendasi, serta subjenis yang relevan:
Subjenis insight | Deskripsi | Tindakan |
---|---|---|
PDB_UNPROTECTED_STATEFULSET |
Menampilkan pemberitahuan saat StatefulSet ada ketika tidak ada label PDB saat ini yang cocok dengan label pemilih Pod StatefulSet. Artinya, semua Pod di StatefulSet dapat dihapus selama peristiwa terjadi seperti upgrade node. | Menambahkan PDB yang labelnya cocok dengan label di kolom pemilih Pod StatefulSet. Tentukan di PDB tersebut berapa banyak gangguan yang dapat ditoleransi oleh StatefulSet. Rekomendasi yang terkait dengan insight ini menyarankan label apa yang harus ditetapkan oleh PDB untuk mencakup StatefulSet yang disebutkan. |
PDB_UNPERMISSIVE |
Menampilkan pemberitahuan saat PDB yang cocok dengan Pod tidak mungkin dipatuhi untuk aktivitas pemeliharaan apa pun, seperti upgrade node. PDB harus mengizinkan setidaknya satu Pod yang dapat menerima gangguan, sehingga GKE melanggar PDB ini untuk pemeliharaan yang diperlukan setelah satu jam. | Sesuaikan setelan minAvailable PDB menjadi kurang dari total jumlah Pod, atau setelan maxUnavailable menjadi lebih besar dari nol. |
PDB_STATEFULSET_WITHOUT_PROBES |
Menampilkan pemberitahuan saat StatefulSet dikonfigurasi dengan PDB tetapi tanpa pemeriksaan kesiapan, sehingga PDB tidak efektif dalam mengukur kesiapan aplikasi. PDB memenuhi pemeriksaan kesiapan saat menentukan Pod mana yang dapat dianggap responsif. Oleh karena itu, jika Pod yang tercakup oleh PDB tidak memiliki pemeriksaan kesiapan yang dikonfigurasi, PDB akan memiliki visibilitas terbatas terkait apakah Pod tersebut responsif atau baru aktif dan berjalan. | Tambahkan pemeriksaan kesiapan ke Pod di StatefulSets untuk PDB yang disebutkan dalam insight. Sebaiknya tambahkan juga pemeriksaan keaktifan. |
DEPLOYMENT_MISSING_PDB |
Menampilkan pemberitahuan saat Deployment ada dengan pemilih Pod yang tidak cocok dengan PDB yang ada dan Deployment memiliki lebih dari satu replika atau penskalaan otomatis Pod horizontal yang diaktifkan. Artinya, semua Pod di Deployment dapat dihapus selama peristiwa terjadi seperti upgrade node. | Menambahkan PDB yang labelnya cocok dengan label di kolom pemilih Pod Deployment. Tentukan di PDB tersebut berapa banyak gangguan yang dapat ditoleransi oleh Deployment. Rekomendasi yang terkait dengan insight ini menyarankan label apa yang harus ditetapkan oleh PDB untuk mencakup Deployment yang disebutkan. |
Menerapkan panduan untuk meningkatkan kesiapan gangguan
Jika telah menerima insight dan rekomendasi untuk workload di cluster Anda dan ingin meningkatkan kesiapannya terhadap gangguan, terapkan petunjuk yang dijelaskan dalam rekomendasi dan tindakan untuk subjenis insight tersebut, seperti yang terlihat dalam bagian sebelumnya.
Rekomendasi dinilai sekali sehari, sehingga mungkin perlu waktu hingga 24 jam untuk menyelesaikannya setelah perubahan diterapkan. Jika masih kurang dari 24 jam sejak Anda menerapkan panduan rekomendasi, Anda dapat menandai rekomendasi tersebut sebagai selesai. Jika tidak ingin menerapkan rekomendasi, Anda dapat menolaknya.
Langkah berikutnya
- Untuk mempelajari lebih lanjut cara memastikan keandalan dan waktu beroperasi untuk cluster GKE Anda, lihat Praktik Terbaik Operasi GKE Hari ke-2.
- Untuk mempelajari lebih lanjut kemungkinan gangguan pada Pod di Kubernetes, lihat Gangguan.