Mengonfigurasi health check container untuk kumpulan pekerja

Anda dapat mengonfigurasi pemeriksaan startup HTTP, TCP, dan gRPC, beserta pemeriksaan keaktifan HTTP dan gRPC untuk kumpulan worker Cloud Run baru dan yang sudah ada. Konfigurasi ini bervariasi, bergantung pada jenis pemeriksaan.

Kasus penggunaan

Anda dapat mengonfigurasi dua jenis pemeriksaan health check:

  • Pemeriksaan keaktifan menentukan apakah akan memulai ulang container.

    • Memulai ulang container dalam hal ini dapat meningkatkan ketersediaan kumpulan pekerja jika terjadi bug.
    • Pemeriksaan keaktifan dimaksudkan untuk memulai ulang instance individual yang tidak dapat dipulihkan dengan cara lain. Pemeriksaan ini harus digunakan terutama untuk kegagalan instance yang tidak dapat dipulihkan, misalnya, untuk mengetahui deadlock saat kumpulan pekerja berjalan, tetapi tidak dapat membuat progres. Anda dapat mewajibkan pemeriksaan keaktifan untuk setiap penampung menggunakan kebijakan organisasi kustom.
  • Pemeriksaan startup menentukan apakah container telah dimulai.

    • Saat Anda mengonfigurasi pemeriksaan startup, pemeriksaan keaktifan dinonaktifkan hingga pemeriksaan startup menentukan bahwa container dimulai, untuk mencegah gangguan pada startup kumpulan pekerja.
    • Pemeriksaan startup sangat berguna jika Anda menggunakan pemeriksaan keaktifan pada container yang dimulai dengan lambat, karena pemeriksaan ini mencegahnya dimatikan sebelum container aktif dan berjalan.

Perhatikan bahwa saat kumpulan pekerja mengalami kegagalan pemeriksaan keaktifan atau startup berulang, Cloud Run mencegah loop error yang tidak terkontrol dengan membatasi mulai ulang instance untuk mencegahnya.

Alokasi CPU

  • CPU selalu dialokasikan saat pemeriksaan berjalan.
  • Semua pemeriksaan ditagih untuk konsumsi penggunaan CPU dan memori.

Persyaratan dan perilaku pemeriksaan

Jenis Probe Persyaratan Perilaku
Startup TCP Tidak ada Jika ditentukan, Cloud Run akan membuat koneksi TCP untuk membuka Soket TCP pada port yang ditentukan. Jika Cloud Run tidak dapat terhubung, hal ini menunjukkan kegagalan.

Jika pemeriksaan startup tidak berhasil dalam waktu yang ditentukan, Cloud Run akan mematikan container. Waktunya maksimal 240 detik, dihitung sebagai failureThreshold * periodSeconds, yang Anda tetapkan saat mengonfigurasi pemeriksaan startup untuk kumpulan pekerja.
Startup HTTP Buat endpoint health check HTTP
Gunakan HTTP/1
Setelah konfigurasi pemeriksaan, Cloud Run akan membuat permintaan HTTP GET ke endpoint pemeriksaan kesehatan kumpulan pekerja (misalnya, /ready). Setiap respons antara 200 dan 400 berhasil, yang lainnya menunjukkan kegagalan.

Jika pemeriksaan startup tidak berhasil dalam waktu yang ditentukan (failureThreshold * periodSeconds), yang tidak dapat melebihi 240 detik, Cloud Run akan mematikan container.

Jika pemeriksaan startup HTTP berhasil dalam waktu yang ditentukan, dan Anda telah mengonfigurasi pemeriksaan keaktifan HTTP, Cloud Run akan memulai pemeriksaan keaktifan HTTP.
Keaktifan HTTP Buat endpoint health check HTTP
Gunakan HTTP/1
Pemeriksaan keaktifan hanya dimulai setelah pemeriksaan startup berhasil. Setelah konfigurasi pemeriksaan, dan semua pemeriksaan startup berhasil, Cloud Run akan membuat permintaan HTTP GET ke endpoint health check (misalnya, /health). Setiap respons antara 200 dan 400 berhasil, yang lainnya menunjukkan kegagalan.

Jika pemeriksaan keaktifan tidak berhasil dalam waktu yang ditentukan (failureThreshold * periodSeconds), Cloud Run akan mematikan container menggunakan sinyal SIGKILL. Semua permintaan yang tersisa yang masih ditayangkan oleh penampung dihentikan dengan kode status HTTP 503. Setelah Cloud Run mematikan container, penskalaan otomatis Cloud Run akan memulai instance container baru.
Startup gRPC Menerapkan protokol Pemeriksaan Kondisi gRPC di kumpulan pekerja Cloud Run Jika pemeriksaan startup tidak berhasil dalam waktu yang ditentukan (failureThreshold * periodSeconds), yang tidak dapat melebihi 240 detik, Cloud Run akan mematikan container.
Keaktifan gRPC Menerapkan protokol Pemeriksaan Kondisi gRPC di kumpulan pekerja Cloud Run Jika Anda mengonfigurasi pemeriksaan startup gRPC, pemeriksaan keaktifan hanya dimulai setelah pemeriksaan startup berhasil.

Setelah pemeriksaan keaktifan dikonfigurasi, dan semua pemeriksaan startup berhasil, Cloud Run akan membuat permintaan health check ke kumpulan pekerja.

Jika pemeriksaan keaktifan tidak berhasil dalam waktu yang ditentukan (failureThreshold * periodSeconds), Cloud Run akan mematikan container menggunakan sinyal SIGKILL. Setelah Cloud Run mematikan container, penskalaan otomatis Cloud Run akan memulai instance container baru.

Mengonfigurasi pemeriksaan

Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.

Anda dapat mengonfigurasi pemeriksaan HTTP, TCP, dan gRPC menggunakan Google Cloud konsol atau Cloud Run REST API:

Konsol

  1. Di konsol Google Cloud , buka Cloud Run:

    Buka Cloud Run

  2. Pilih Worker pool dari menu.

    • Jika Anda mengonfigurasi kumpulan pekerja baru, klik Deploy container.
    • Jika Anda mengonfigurasi pool worker yang sudah ada, pilih pool worker, lalu klik Edit dan deploy revisi baru.
  3. Jika Anda mengonfigurasi kumpulan pekerja baru, isi halaman kumpulan pekerja awal, lalu klik Container, Volume, Jaringan, Keamanan untuk meluaskan halaman konfigurasi kumpulan pekerja.

  4. Di bagian Container(s), buka Health checks, lalu klik Add health check untuk membuka panel konfigurasi Add health check.

  5. Dari menu Pilih jenis pemeriksaan kesehatan, pilih jenis pemeriksaan kesehatan yang ingin Anda tambahkan.

  6. Dari menu Pilih jenis probe, pilih jenis probe yang ingin Anda gunakan, misalnya, HTTP atau gRPC. Tindakan ini akan menampilkan formulir konfigurasi probe.

  7. Konfigurasi setelan pemeriksaan, yang bervariasi menurut jenis pemeriksaan:

    • Jika Anda menggunakan pemeriksaan HTTP:

      • Gunakan kolom Path untuk menentukan jalur relatif ke endpoint, misalnya, /.

      • Centang kotak HTTP Headers untuk menentukan header kustom opsional. Tentukan nama header di kolom Nama dan nilai header di kolom Nilai. Klik Tambahkan header HTTP untuk menentukan lebih banyak header.

    • Jika Anda menggunakan pemeriksaan gRPC, pastikan image container Anda menerapkan protokol health check gRPC. Untuk mengetahui informasi selengkapnya, lihat GRPC Health Checking Protocol.

    • Untuk jenis pemeriksaan HTTP dan gRPC, tentukan hal berikut:

      • Penundaan awal, tentukan jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 240 detik. Nilai default-nya adalah 0 detik.

      • Periode, tentukan periode (dalam detik) untuk melakukan pemeriksaan. Misalnya, tentukan 2 untuk melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.

      • Batas kegagalan, tentukan frekuensi untuk mencoba kembali pemeriksaan sebelum mematikan container. Nilai defaultnya adalah 3.

      • Waktu tunggu, tentukan jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Tentukan nilai dari 1 hingga yang lebih kecil dari 240 dan periodSeconds. Nilai defaultnya adalah 1.

  8. Klik Tambahkan untuk menambahkan nilai minimum baru.

  9. Klik Buat atau Deploy.

REST API

Penting: Jika mengonfigurasi kumpulan pekerja Cloud Run untuk pemeriksaan HTTP, Anda juga harus menambahkan endpoint pemeriksaan kesehatan HTTP dalam kode kumpulan pekerja untuk merespons pemeriksaan tersebut. Jika mengonfigurasi pemeriksaan gRPC, Anda juga harus menerapkan protokol Health Check gRPC di kumpulan pekerja Cloud Run.

Startup HTTP

Gunakan REST API untuk mengonfigurasi hal ini.

Keaktifan HTTP

Gunakan REST API untuk mengonfigurasi hal ini.

Startup gRPC

Gunakan REST API untuk mengonfigurasi hal ini.

Keaktifan gRPC

Gunakan REST API untuk mengonfigurasi hal ini.

Membuat endpoint health check HTTP

Jika mengonfigurasi kumpulan pekerja Cloud Run untuk pemeriksaan startup HTTP atau pemeriksaan keaktifan, Anda perlu menambahkan endpoint dalam kode kumpulan pekerja untuk merespons pemeriksaan tersebut. Endpoint dapat memiliki nama apa pun yang Anda inginkan, misalnya, /startup atau /ready, tetapi nama tersebut harus cocok dengan nilai yang Anda tentukan untuk path dalam konfigurasi pemeriksaan. Misalnya, jika Anda menentukan /ready untuk pemeriksaan startup HTTP, tentukan path dalam konfigurasi pemeriksaan Anda seperti yang ditunjukkan di bawah ini:

startupProbe:
  httpGet:
    path: /ready

Endpoint health check HTTP dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint HTTP lainnya yang diekspos secara eksternal.