Health Check
Health check memberi tahu Zenavo kapan sebuah instance siap menerima trafik. Deploy menjalankan instance baru di samping yang lama dan baru mengalihkan trafik setelah yang baru lolos, dan itulah yang membuat rollout tanpa downtime.
Pilih pemeriksaannya di Service → Settings → Health Check:
- Port (bawaan): Zenavo memeriksa apakah port TCP atau HTTP pertama layanan menerima koneksi, setiap 10 detik, dengan timeout 5 detik dan 3 kegagalan yang diizinkan. Layanan tanpa port seperti itu tidak punya pemeriksaan dan dianggap siap begitu mulai.
- HTTP: Zenavo meminta sebuah path, seperti
/healthz, di port TCP atau HTTP pertama layanan atau di port yang Anda atur. Jawaban 2xx atau 3xx berarti siap. Permintaan datang dari cluster, jadi image tidak perlucurlatauwget. Ini pilihan terbaik untuk aplikasi web. - Command: perintah yang dijalankan di dalam kontainer, seperti
pg_isready -U postgres; exit code 0 berarti siap. Perintah berjalan tanpa shell, jadi untuk&&,|, atau$VARIABLEStulissh -c "…". Database yang ditambahkan dari konsol dan banyak template sudah menyertakannya.
Pemeriksaan HTTP dan perintah punya waktu yang bisa diatur: interval antarpemeriksaan, timeout satu pemeriksaan, kegagalan yang diizinkan sebelum instance dianggap tidak sehat (bawaan 6), dan periode mulai yang ditunggu setelah kontainer mulai (bawaan 10 detik). Naikkan periode mulai untuk aplikasi yang lambat mulai, seperti aplikasi Java atau aplikasi yang menjalankan migrasi saat mulai.
Di manifest:
"healthcheck": { "http": { "path": "/healthz" }, "interval": 10, "timeout": 5, "retries": 6, "start_period": 10 }atau "command": ["pg_isready", "-U", "postgres"] sebagai pengganti "http".
Saat pemeriksaan gagal
- Selama deploy: jika instance baru terus gagal, deploy gagal begitu hal itu jelas, dengan alasan dari pemeriksaan terakhir (misalnya
HTTP probe failed with statuscode: 404) dan log terbaru instance. Instance lama tetap melayani. - Setelah deploy: instance yang berhenti lolos tidak mendapat trafik, dan layanan tampil sebagai Unhealthy. Zenavo tidak me-restart-nya karena gagal pemeriksaan; periksa log-nya, lalu deploy ulang atau restart.
Batas crash
Jika layanan terus crash, Zenavo bisa menangguhkannya setelah sejumlah restart (batas crash-nya) alih-alih me-restart-nya tanpa henti. Layanan lalu menampilkan pemberitahuan; periksa log-nya, lalu lanjutkan atau deploy perbaikan.