Setelah menerapkan aplikasi ke SAE, Anda dapat menggunakan fitur pemeriksaan kesehatan untuk memverifikasi bahwa aplikasi berjalan dengan baik dan mengidentifikasi masalah saat terjadi exception. SAE mendukung konfigurasi pemeriksaan kesehatan selama pembuatan dan penerapan aplikasi. Topik ini menjelaskan cara mengonfigurasi pemeriksaan kesehatan di Konsol SAE.
Latar Belakang
Cara kerja pemeriksaan kesehatan
Pemeriksaan kesehatan menggunakan liveness, readiness, atau startup probe untuk memeriksa instans aplikasi secara berkala dan melaporkan hasilnya ke Konsol SAE. Hal ini membantu Anda memahami kesehatan keseluruhan layanan dalam lingkungan kluster serta mengidentifikasi masalah.
SAE dibangun di atas Kubernetes dan menyediakan jenis pemeriksaan kesehatan berikut.
-
Liveness probe: Menentukan apakah instans aplikasi sedang berjalan.
-
Jika probe berhasil: Instans aplikasi sehat, dan SAE tidak melakukan tindakan apa pun.
-
Jika probe gagal: Instans aplikasi tidak sehat, dan SAE me-restart instans tersebut.
-
-
Readiness probe: Menentukan apakah instans aplikasi siap memproses traffic masuk.
-
Jika probe berhasil: Instans aplikasi siap, dan SAE mengalokasikan traffic ke instans tersebut.
-
Jika probe gagal: Instans aplikasi belum siap. SAE melaporkan exception untuk instans tersebut dan tidak mengalokasikan traffic kepadanya.
-
-
Startup probe: Menentukan apakah instans aplikasi telah berhasil dimulai.
-
Jika probe berhasil: Instans aplikasi telah berhasil dimulai. Probe liveness dan readiness, jika dikonfigurasi, baru akan dimulai setelah startup probe berhasil.
-
Jika probe gagal: Instans aplikasi gagal dimulai. SAE melaporkan exception dan secara otomatis me-restart instans tersebut.
-
Kriteria keberhasilan dan kegagalan
-
Berhasil: Probe berhasil ketika jumlah pemeriksaan berhasil berturut-turut mencapai healthy threshold yang ditentukan.
-
Gagal: Jika satu pemeriksaan kesehatan gagal, SAE terus melakukan pemeriksaan sesuai interval yang dikonfigurasi. Jika jumlah kegagalan berturut-turut mencapai unhealthy threshold yang ditentukan, SAE mengambil tindakan. Untuk liveness probe yang gagal, SAE me-restart instans aplikasi. Untuk readiness probe yang gagal, SAE menghapus instans dari titik akhir layanan sehingga tidak lagi menerima traffic.
Parameter pemeriksaan kesehatan
SAE menggunakan parameter berikut untuk memeriksa status aplikasi dan instans aplikasi.
-
Initial delay
Penundaan dalam detik setelah aplikasi dimulai sebelum probe pertama dimulai. Nilai ini harus lebih besar daripada waktu startup aplikasi untuk mencegah kegagalan probe dan restart berikutnya selama penerapan.
-
Timeout
Waktu tunggu untuk satu probe, dalam detik. Nilai default adalah 1. Misalnya, jika Anda mengatur nilai ini menjadi 10, probe gagal jika tidak menerima respons dalam waktu 10 detik. Jika Anda mengatur parameter ini menjadi 0 atau membiarkannya kosong, timeout default 1 detik akan digunakan.
-
Period
Interval antar pemeriksaan kesehatan, dalam detik. Nilai default adalah 30. Misalnya, jika Anda mengatur nilai ini menjadi 5, pemeriksaan dilakukan setiap 5 detik. Untuk mempercepat startup, SAE dapat menjalankan readiness probe lebih sering daripada periode yang dikonfigurasi segera setelah instans dimulai, sehingga instans tersebut dapat menerima traffic lebih cepat.
Prosedur
-
Buat aplikasi
Di daftar aplikasi SAE, pilih wilayah dan namespace target di bagian atas, lalu klik Create Application. Setelah mengonfigurasi pengaturan di halaman basic information, klik Next: advanced settings.
Ubah aplikasi yang sedang berjalan
PeringatanMen-deploy ulang aplikasi akan me-restart-nya. Untuk menghindari gangguan layanan atau error tak terduga lainnya, lakukan operasi deployment selama jam sepi.
Di daftar aplikasi SAE, pilih wilayah dan namespace target di bagian atas, lalu klik Application ID aplikasi Anda untuk membuka halaman detailnya. Di panel navigasi kiri, klik basic information, lalu klik deploy application di pojok kanan atas.
Ubah aplikasi yang dihentikan
Di daftar aplikasi SAE, pilih wilayah dan namespace target di bagian atas, lalu klik Application ID aplikasi Anda untuk membuka halaman detailnya. Klik basic information, lalu klik Modify Application Configuration.
-
Bentangkan bagian Application health check settings dan konfigurasikan parameter sesuai kebutuhan.
Konfigurasi
-
Jika diperlukan, aktifkan Enable application instance liveness check (Liveness configuration), Enable application readiness probe (Readiness configuration), atau Enable startup probe configuration. Parameter konfigurasi sama untuk ketiga jenis probe tersebut.
Catatan-
Anda dapat mengonfigurasi liveness, readiness, dan startup probe secara terpisah atau dalam kombinasi apa pun. Kami merekomendasikan untuk mengonfigurasi ketiganya.
-
Saat ketiga pemeriksaan kesehatan dikonfigurasi, startup probe dijalankan terlebih dahulu. Probe liveness dan readiness baru dimulai setelah startup probe berhasil, masing-masing mengikuti initial delay yang dikonfigurasi.
-
-
Pilih Check method dan konfigurasikan parameternya.
-
HTTP request check: Memeriksa kesehatan instans dengan mengirim permintaan HTTP. Instans dianggap sehat jika kode status berada di antara 200 dan 399; jika tidak, instans dianggap tidak sehat.
-
TCP port check: Memeriksa kesehatan instans dengan membuat koneksi soket TCP. Instans dianggap sehat jika koneksi berhasil; jika tidak, instans dianggap tidak sehat.
-
Executable command check: Memeriksa kesehatan instans dengan menjalankan perintah di dalamnya. Instans dianggap sehat jika perintah mengembalikan exit code 0; jika tidak, instans dianggap tidak sehat.
HTTP request
Parameter
Deskripsi
Path
Path yang diakses pada server HTTP.
Port
Port yang diakses pada server HTTP.
Advanced settings
Bentangkan advanced settings untuk mengonfigurasi pemeriksaan opsional yang memverifikasi apakah badan respons berisi kata kunci tertentu.
Protocol
Pilih HTTP atau HTTPS.
initial delay (seconds)
Penundaan dalam detik setelah aplikasi dimulai sebelum probe pertama dimulai. Nilai ini harus lebih besar daripada waktu startup aplikasi untuk mencegah kegagalan probe dan restart berikutnya selama penerapan.
timeout (seconds)
Waktu tunggu untuk satu probe, dalam detik. Nilai default adalah 1. Misalnya, jika Anda mengatur nilai ini menjadi 10, probe gagal jika tidak menerima respons dalam waktu 10 detik. Jika Anda mengatur parameter ini menjadi 0 atau membiarkannya kosong, timeout default 1 detik akan digunakan.
period (seconds)
Interval antar pemeriksaan kesehatan, dalam detik. Nilai default adalah 30. Misalnya, jika Anda mengatur nilai ini menjadi 5, pemeriksaan dilakukan setiap 5 detik. Untuk mempercepat startup, SAE dapat menjalankan readiness probe lebih sering daripada periode yang dikonfigurasi segera setelah instans dimulai, sehingga instans tersebut dapat menerima traffic lebih cepat.
healthy threshold (times)
Jumlah minimum keberhasilan berturut-turut yang diperlukan agar probe dianggap berhasil setelah sebelumnya gagal. Untuk liveness probe, nilai ini harus 1.
unhealthy threshold (times)
Jumlah kegagalan berturut-turut setelah itu probe dianggap gagal.
TCP port
Parameter
Deskripsi
TCP port
Port TCP yang diakses untuk pemeriksaan kesehatan.
initial delay (seconds)
Penundaan dalam detik setelah aplikasi dimulai sebelum probe pertama dimulai. Nilai ini harus lebih besar daripada waktu startup aplikasi untuk mencegah kegagalan probe dan restart berikutnya selama penerapan.
timeout (seconds)
Waktu tunggu untuk satu probe, dalam detik. Nilai default adalah 1. Misalnya, jika Anda mengatur nilai ini menjadi 10, probe gagal jika tidak menerima respons dalam waktu 10 detik. Jika Anda mengatur parameter ini menjadi 0 atau membiarkannya kosong, timeout default 1 detik akan digunakan.
period (seconds)
Interval antar pemeriksaan kesehatan, dalam detik. Nilai default adalah 30. Misalnya, jika Anda mengatur nilai ini menjadi 5, pemeriksaan dilakukan setiap 5 detik. Untuk mempercepat startup, SAE dapat menjalankan readiness probe lebih sering daripada periode yang dikonfigurasi segera setelah instans dimulai, sehingga instans tersebut dapat menerima traffic lebih cepat.
healthy threshold (times)
Jumlah minimum keberhasilan berturut-turut yang diperlukan agar probe dianggap berhasil setelah sebelumnya gagal. Untuk liveness probe, nilai ini harus 1.
unhealthy threshold (times)
Jumlah kegagalan berturut-turut setelah itu probe dianggap gagal.
Executable command
Parameter
Deskripsi
initial delay (seconds)
Penundaan dalam detik setelah aplikasi dimulai sebelum probe pertama dimulai. Nilai ini harus lebih besar daripada waktu startup aplikasi untuk mencegah kegagalan probe dan restart berikutnya selama penerapan.
timeout (seconds)
Waktu tunggu untuk satu probe, dalam detik. Nilai default adalah 1. Misalnya, jika Anda mengatur nilai ini menjadi 10, probe gagal jika tidak menerima respons dalam waktu 10 detik. Jika Anda mengatur parameter ini menjadi 0 atau membiarkannya kosong, timeout default 1 detik akan digunakan.
period (seconds)
Interval antar pemeriksaan kesehatan, dalam detik. Nilai default adalah 30. Misalnya, jika Anda mengatur nilai ini menjadi 5, pemeriksaan dilakukan setiap 5 detik. Untuk mempercepat startup, SAE dapat menjalankan readiness probe lebih sering daripada periode yang dikonfigurasi segera setelah instans dimulai, sehingga instans tersebut dapat menerima traffic lebih cepat.
healthy threshold (times)
Jumlah minimum keberhasilan berturut-turut yang diperlukan agar probe dianggap berhasil setelah sebelumnya gagal. Untuk liveness probe, nilai ini harus 1.
unhealthy threshold (times)
Jumlah kegagalan berturut-turut setelah itu probe dianggap gagal.
Command
Perintah yang dijalankan di dalam instans. Untuk informasi lebih lanjut tentang perintah probe, lihat Configure Probes dalam dokumentasi Kubernetes.
CatatanSAE menyediakan dua interpreter shell:
-
>_ /bin/sh
-
>_ /bin/bash
Contoh: Perintah
cat /tmp/healthymemeriksa secara berkala keberadaan file/tmp/healthy. Pemeriksaan berhasil (mengembalikan 0) jika file tersebut ada. -
Verifikasi hasil
Setelah mengonfigurasi pemeriksaan kesehatan, buka halaman basic information aplikasi dan klik tab Instances. Di area Default Group, Anda dapat melihat status berjalan setiap instans. Arahkan kursor ke ikon status untuk melihat detail konfigurasi pemeriksaan kesehatan.
|
Status berjalan |
Deskripsi |
|
Menunjukkan bahwa tidak ada pemeriksaan kesehatan yang dikonfigurasi untuk instans tersebut. Catatan
|
|
Liveness dan readiness health check gagal Status instans adalah Running, tetapi pesan merah Health check failed ditampilkan. |
Menunjukkan bahwa pemeriksaan kesehatan gagal dan instans tidak sehat. Catatan
Arahkan kursor ke status instans untuk melihat alasan kegagalan. Untuk langkah penyelesaian, klik Troubleshooting Guide. |
|
Pemeriksaan kesehatan berhasil Status instans adalah Running berwarna hijau tanpa pesan peringatan. |
Menunjukkan bahwa pemeriksaan kesehatan berhasil dan instans sehat. |
Penyebab umum kegagalan pemeriksaan kesehatan
-
Initial delay terlalu singkat, menyebabkan pemeriksaan kesehatan dimulai sebelum aplikasi sepenuhnya diinisialisasi. Tingkatkan penundaan dan coba lagi.
-
Konfigurasi pemeriksaan kesehatan salah. Verifikasi port dan path.
-
Layanan mengalami beban berlebih. Periksa data pemantauan aplikasi untuk memastikan. Jika ini penyebabnya, tambahkan jumlah instans, gunakan tipe instans yang lebih besar, atau kurangi ukuran heap JVM.
-
Aplikasi gagal dimulai. Coba nonaktifkan pemeriksaan kesehatan untuk mendiagnosis masalah. Jika aplikasi tetap gagal dimulai, Anda mungkin perlu mengoptimalkan kode Anda.