Health check Cloud Run memastikan bahwa instance container Anda berjalan dengan benar dan dapat menyalurkan traffic. Dengan health check Cloud Run, Anda dapat menyesuaikan kapan container siap menerima permintaan, dan kapan container harus dianggap tidak responsif sehingga perlu dimulai ulang.
Kasus penggunaan
Anda dapat mengonfigurasi jenis pemeriksaan health check berikut:
Pemeriksaan startup menentukan apakah container telah dimulai dan siap menerima traffic.
- Saat Anda mengonfigurasi pemeriksaan startup, pemeriksaan keaktifan dan kesiapan dinonaktifkan hingga pemeriksaan startup menentukan bahwa container dimulai, untuk mencegah gangguan pada startup layanan.
- Pemeriksaan startup sangat berguna jika Anda menggunakan pemeriksaan keaktifan pada container yang dimulai dengan lambat, karena pemeriksaan startup mencegah container dimatikan sebelum container aktif dan berjalan.
Pemeriksaan keaktifan menentukan apakah akan memulai ulang container.
- Memulai ulang container dalam hal ini dapat meningkatkan ketersediaan layanan jika terjadi bug.
- Pemeriksaan keaktifan dimaksudkan untuk memulai ulang setiap instance yang tidak dapat dipulihkan dengan cara lain. Pemeriksaan ini harus digunakan terutama untuk kegagalan instance yang tidak dapat dipulihkan, seperti mendeteksi deadlock saat layanan berjalan, tetapi tidak dapat membuat progres. Anda dapat mewajibkan pemeriksaan keaktifan untuk setiap container menggunakan kebijakan organisasi kustom.
- Jika layanan mengalami kegagalan pemeriksaan berulang, Cloud Run akan membatasi mulai ulang instance untuk mencegah loop error yang tidak terkontrol.
-
Pemeriksaan kesiapan menentukan kapan instance di layanan Cloud Run Anda harus menyajikan traffic. Pemeriksaan kesiapan dimulai setelah pemeriksaan startup container berhasil lulus. Jika instance gagal dalam pemeriksaan kesiapan melebihi nilai batas kegagalan yang Anda konfigurasi, Cloud Run akan berhenti mengirim traffic baru ke instance tersebut. Cloud Run tidak menghentikan instance dan mengirim traffic kembali ke instance saat instance mulai lulus pemeriksaan kesiapan lagi.
Container Anda harus menerapkan pemeriksaan startup, keaktifan, dan kesiapan secara konsisten. Setelah pemeriksaan startup lulus, Cloud Run akan menganggap container Anda siap menyalurkan traffic.
Sebaiknya Anda mengenkapsulasi logika Anda sehingga pemeriksaan startup memperhitungkan kesiapan. Karena Cloud Run dapat merutekan traffic ke instance baru sebelum pemeriksaan kesiapan pertama selesai, pastikan bahwa pemeriksaan startup yang berhasil juga memastikan kesiapan untuk segera menyalurkan traffic dengan aman. Saat pemeriksaan startup berhasil, kami menganggap container siap menerima traffic.
Mengonfigurasi pemeriksaan startup
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, YAML, atau Terraform:
Konsol
Di konsol Google Cloud , buka Cloud Run:
Pilih Services dari menu navigasi Cloud Run:
Jika Anda mengonfigurasi layanan baru, klik Deploy container dan isi halaman setelan layanan awal. Kemudian, klik Containers, Networking, Security untuk memperluas halaman konfigurasi layanan.
Jika Anda mengonfigurasi layanan yang ada, klik layanan tersebut, lalu klik tab Containers.
Di bagian Health checks, klik Add health check untuk membuka panel konfigurasi Add health check.
Dari menu Select health check type, pilih Startup check.
Dari menu Select probe type, pilih jenis pemeriksaan yang ingin Anda gunakan, misalnya, HTTP atau gRPC. Tindakan ini akan menampilkan formulir konfigurasi pemeriksaan. Konfigurasi pemeriksaan bervariasi menurut jenis pemeriksaan. Konfigurasi setelan pemeriksaan:
Jika Anda menggunakan pemeriksaan HTTP:
-
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya,
/startup,/health, atau/are_you_ready) harus cocok denganpathdalam konfigurasi pemeriksaan. Endpoint health check HTTP dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint layanan HTTP lainnya yang diekspos secara eksternal. - Gunakan kolom Path untuk menentukan jalur relatif ke endpoint,
misalnya,
/. - Centang kotak HTTP Headers untuk menentukan header kustom opsional. Tentukan nama header di kolom Name dan nilai header di kolom Value. Klik Add HTTP header untuk menentukan lebih banyak header.
-
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya,
Jika Anda menggunakan pemeriksaan gRPC:
- Pastikan image container Anda menerapkan protokol health check gRPC.
Untuk Port, tentukan port container yang digunakan untuk layanan Anda.
Untuk Initial delay, tentukan jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 600 detik (1.800 untuk GPU). Nilai default-nya adalah 0 detik.
Untuk Period, tentukan periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 600 detik (1.800 untuk GPU). Nilai default-nya adalah 10 detik.Untuk Failure threshold, tentukan frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
Untuk Timeout, tentukan jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 600 (1800 untuk GPU). Nilai defaultnya adalah 1.
Klik Add untuk menambahkan nilai minimum baru.
Klik Create untuk layanan baru. Klik View diff & redeploy, lalu Deploy changes untuk layanan yang ada.
Untuk menghapus pemeriksaan, klik ikon Delete untuk health check yang ingin Anda hapus, lalu klik Confirm. Untuk men-deploy revisi baru layanan Cloud Run Anda, klik View diff & redeploy, lalu Deploy changes.
gcloud
Startup TCP
Jalankan perintah berikut:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--startup-probe tcpSocket.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda.
- DELAY: jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 600 detik (1.800 untuk GPU). Nilai default-nya adalah 0 detik.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan
habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 600 (1.800 untuk GPU). Nilai defaultnya adalah 1. - THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
- PERIOD: periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 600 detik (1.800 untuk GPU). Nilai default-nya adalah 10 detik.
Startup HTTP
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya, /startup,
/health, atau /are_you_ready) harus cocok dengan path dalam
konfigurasi pemeriksaan. Endpoint health check HTTP dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint layanan HTTP lainnya yang diekspos secara eksternal.
Jalankan perintah berikut:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--startup-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: jalur relatif ke endpoint HTTP, misalnya,
/health. - Opsional. CONTAINER_PORT: ditetapkan ke port container yang digunakan untuk layanan Anda.
- Opsional. DELAY: jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 600 detik (1800 untuk GPU). Nilai default-nya adalah 0 detik.
- Opsional. THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 600 (1800 untuk GPU). Nilai defaultnya adalah 1.
- Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 600 detik (1.800 untuk GPU). Nilai default-nya adalah 10 detik.
Startup gRPC
Pastikan image container Anda menerapkan protokol health check gRPC.
Jalankan perintah berikut:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--startup-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Opsional. GRPC_SERVICE: Jika ditetapkan, ini digunakan di kolom layanan
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda.
- Opsional. DELAY: jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 600 detik (1800 untuk GPU). Nilai default-nya adalah 0 detik.
- Opsional. THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 600 (1800 untuk GPU). Nilai defaultnya adalah 1.
- Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 600 detik (1.800 untuk GPU). Nilai default-nya adalah 10 detik.
YAML
Startup TCP
Konfigurasikan atribut
startupProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL startupProbe: tcpSocket: port: CONTAINER_PORT initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda.
- DELAY: jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 600 detik (1.800 untuk GPU). Nilai default-nya adalah 0 detik.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan
habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 600 (1.800 untuk GPU). Nilai defaultnya adalah 1. - THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
- PERIOD: periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 600 detik (1.800 untuk GPU). Nilai default-nya adalah 10 detik.
Startup HTTP
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya, /startup,
/health, atau /are_you_ready) harus cocok dengan path dalam
konfigurasi pemeriksaan. Endpoint health check HTTP dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint layanan HTTP lainnya yang diekspos secara eksternal.
Konfigurasikan atribut
startupProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL startupProbe: httpGet: path: PATH port: CONTAINER_PORT httpHeaders: - name: HEADER_NAME value: HEADER_VALUE initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: jalur relatif ke endpoint HTTP, misalnya,
/health. - Opsional. CONTAINER_PORT: ditetapkan ke port container yang digunakan untuk layanan Anda.
- Opsional. DELAY: jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 600 detik (1800 untuk GPU). Nilai default-nya adalah 0 detik.
- Opsional. THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
- Opsional:
httpHeadersdapat digunakan untuk menyediakan beberapa header kustom atau berulang menggunakan kolom HEADER_NAME dan HEADER_VALUE seperti yang ditunjukkan. - Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 600 (1800 untuk GPU). Nilai defaultnya adalah 1.
- Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 600 detik (1.800 untuk GPU). Nilai default-nya adalah 10 detik.
Startup gRPC
Pastikan image container Anda menerapkan protokol health check gRPC.
Konfigurasikan atribut
startupProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL startupProbe: grpc: service: GRPC_SERVICE port: CONTAINER_PORT initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Opsional. GRPC_SERVICE: Jika ditetapkan, ini digunakan di kolom layanan
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda.
- Opsional. DELAY: jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 600 detik (1800 untuk GPU). Nilai default-nya adalah 0 detik.
- Opsional. THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 600 (1800 untuk GPU). Nilai defaultnya adalah 1.
- Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 600 detik (1.800 untuk GPU). Nilai default-nya adalah 10 detik.
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Startup TCP
Konfigurasikan layanan Cloud Run dengan atribut startup_probe seperti yang ditunjukkan:
Startup HTTP
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya, /startup,
/health, atau /are_you_ready) harus cocok dengan path dalam
konfigurasi pemeriksaan. Endpoint health check HTTP dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint layanan HTTP lainnya yang diekspos secara eksternal.
Konfigurasikan layanan Cloud Run dengan atribut startup_probe seperti yang ditunjukkan:
Startup gRPC
Pastikan image container Anda menerapkan protokol health check gRPC.
Konfigurasikan layanan Cloud Run dengan atribut startup_probe seperti yang ditunjukkan:
Pemeriksaan waktu mulai TCP default
Jika Anda tidak mengonfigurasi pemeriksaan startup TCP secara eksplisit untuk layanan Cloud Run baru, Cloud Run akan otomatis mengonfigurasi pemeriksaan startup TCP dengan nilai default berikut:
startupProbe:
timeoutSeconds: 240
periodSeconds: 240
failureThreshold: 1
Anda dapat mengubah nilai default ini dengan mengikuti petunjuk di bagian konfigurasi pemeriksaan di halaman ini.
Persyaratan dan perilaku pemeriksaan waktu mulai
| Jenis Pemeriksaan | Persyaratan | Perilaku |
|---|---|---|
| Startup TCP | Tidak ada | Secara default, Cloud Run 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 ( failureThreshold * periodSeconds), yang tidak dapat melebihi 600 detik (1.800 untuk GPU), container akan dimatikan. Lihat juga Default TCP. |
| Startup HTTP | Membuat endpoint health check HTTP Gunakan HTTP/1 |
Setelah konfigurasi pemeriksaan, Cloud Run akan membuat permintaan GET HTTP ke endpoint health check (misalnya, /health). Setiap respons 2XX atau 3XX berhasil, yang lainnya menunjukkan kegagalan.Jika pemeriksaan startup tidak berhasil dalam waktu yang ditentukan ( failureThreshold * periodSeconds), yang tidak boleh melebihi 600 detik (1.800 untuk GPU), container akan dimatikan.Jika pemeriksaan startup HTTP berhasil dalam waktu yang ditentukan, dan Anda telah mengonfigurasi pemeriksaan keaktifan HTTP, pemeriksaan keaktifan HTTP akan dimulai. |
| Startup gRPC | Menerapkan protokol Health Check gRPC di layanan Cloud Run Anda | Jika pemeriksaan startup tidak berhasil dalam waktu yang ditentukan (failureThreshold * periodSeconds), yang tidak boleh melebihi 600 detik (1.800 untuk GPU), container akan dimatikan. |
Mengonfigurasi pemeriksaan keaktifan
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 dan gRPC menggunakan Google Cloud konsol, YAML, atau Terraform:
Konsol
Di konsol Google Cloud , buka Cloud Run:
Pilih Services dari menu navigasi Cloud Run:
Jika Anda mengonfigurasi layanan baru, klik Deploy container dan isi halaman setelan layanan awal. Kemudian, klik Containers, Networking, Security untuk memperluas halaman konfigurasi layanan.
Jika Anda mengonfigurasi layanan yang ada, klik layanan tersebut, lalu klik tab Containers.
Di bagian Health checks, klik Add health check untuk membuka panel konfigurasi Add health check.
Dari menu Select health check type, pilih Liveness check.
Dari menu Select probe type, pilih jenis pemeriksaan yang ingin Anda gunakan, misalnya, HTTP atau gRPC. Tindakan ini akan menampilkan formulir konfigurasi pemeriksaan.
Konfigurasi pemeriksaan bervariasi menurut jenis pemeriksaan. Konfigurasikan setelan pemeriksaan:
Jika Anda menggunakan pemeriksaan HTTP:
-
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya,
/startup,/health, atau/are_you_ready) harus cocok denganpathdalam konfigurasi pemeriksaan. Endpoint health check HTTP dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint layanan HTTP lainnya yang diekspos secara eksternal. - Gunakan kolom Path untuk menentukan jalur relatif ke endpoint,
misalnya,
/. - Centang kotak HTTP Headers untuk menentukan header kustom opsional. Tentukan nama header di kolom Name dan nilai header di kolom Value. Klik Add HTTP header untuk menentukan header lainnya.
-
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya,
Jika Anda menggunakan pemeriksaan gRPC:
- Pastikan image container Anda menerapkan protokol health check gRPC.
Untuk Port, tentukan port container yang digunakan untuk layanan Anda.
Untuk Initial delay, tentukan jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 600 detik (1.800 untuk GPU). Nilai default-nya adalah 0 detik.
Untuk Period, tentukan periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 3600 detik. Nilai default-nya adalah 10 detik.Untuk Failure threshold, tentukan frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan container. Nilai default-nya adalah 3.
Untuk Timeout, tentukan jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 3600. Defaultnya adalah 1.
Klik Add untuk menambahkan nilai minimum baru.
Klik Create untuk layanan baru. Klik View diff & redeploy, lalu Deploy changes untuk layanan yang ada.
Untuk menghapus pemeriksaan, klik ikon Delete untuk health check yang ingin Anda hapus, lalu klik Confirm. Untuk men-deploy revisi baru layanan Cloud Run Anda, klik View diff & redeploy, lalu Deploy changes.
gcloud
Keaktifan HTTP
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya, /startup,
/health, atau /are_you_ready) harus cocok dengan path dalam
konfigurasi pemeriksaan. Endpoint health check HTTP dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint layanan HTTP lainnya yang diekspos secara eksternal.
Jalankan perintah berikut:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--liveness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: jalur relatif ke endpoint HTTP, misalnya,
/health. - Opsional. CONTAINER_PORT: ditetapkan ke port container yang digunakan untuk layanan Anda.
- Opsional. DELAY: jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 600 detik (1800 untuk GPU). Nilai default-nya adalah 0 detik.
- Opsional. THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 3600.Defaultnya adalah 1. - Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 3600 detik. Nilai default-nya adalah 10 detik.
Keaktifan gRPC
Pastikan image container Anda menerapkan protokol health check gRPC.
Jalankan perintah berikut:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--liveness-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Opsional. GRPC_SERVICE: Jika ditetapkan, ini digunakan di kolom layanan
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda.
- Opsional. DELAY: jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 600 detik (1800 untuk GPU). Nilai default-nya adalah 0 detik.
- Opsional. THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 3600.Defaultnya adalah 1. - Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 3600 detik. Nilai default-nya adalah 10 detik.
YAML
Keaktifan HTTP
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya, /startup,
/health, atau /are_you_ready) harus cocok dengan path dalam
konfigurasi pemeriksaan. Endpoint health check HTTP dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint layanan HTTP lainnya yang diekspos secara eksternal.
Konfigurasikan atribut
livenessProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL livenessProbe: httpGet: path: PATH port: CONTAINER_PORT httpHeaders: - name: HEADER_NAME value: HEADER_VALUE initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: jalur relatif ke endpoint HTTP, misalnya,
/health. - Opsional. CONTAINER_PORT: ditetapkan ke port container yang digunakan untuk layanan Anda.
- Opsional. DELAY: jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 600 detik (1800 untuk GPU). Nilai default-nya adalah 0 detik.
- Opsional. THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
- Opsional:
httpHeadersdapat digunakan untuk menyediakan beberapa header kustom atau berulang menggunakan kolom HEADER_NAME dan HEADER_VALUE seperti yang ditunjukkan. - Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 3600.Defaultnya adalah 1. - Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 3600 detik. Nilai default-nya adalah 10 detik.
Keaktifan gRPC
Pastikan image container Anda menerapkan protokol health check gRPC.
Konfigurasikan atribut
livenessProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL livenessProbe: grpc: port: CONTAINER_PORT service: GRPC_SERVICE initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Opsional. GRPC_SERVICE: Jika ditetapkan, ini digunakan di kolom layanan
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda.
- Opsional. DELAY: jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 600 detik (1800 untuk GPU). Nilai default-nya adalah 0 detik.
- Opsional. THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 3600.Defaultnya adalah 1. - Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 3600 detik. Nilai default-nya adalah 10 detik.
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Keaktifan HTTP
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya, /startup,
/health, atau /are_you_ready) harus cocok dengan path dalam
konfigurasi pemeriksaan. Endpoint health check HTTP dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint layanan HTTP lainnya yang diekspos secara eksternal.
Konfigurasikan layanan Cloud Run dengan atribut liveness_probe seperti yang ditunjukkan:
Keaktifan gRPC
Pastikan image container Anda menerapkan protokol health check gRPC.
Konfigurasikan layanan Cloud Run dengan atribut liveness_probe seperti yang ditunjukkan:
Persyaratan dan perilaku pemeriksaan keaktifan
| Jenis Pemeriksaan | Persyaratan | Perilaku |
|---|---|---|
| Keaktifan HTTP | Membuat 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 GET HTTP ke endpoint health check (misalnya, /health). Setiap respons 2XX atau 3XX berhasil, yang lainnya menunjukkan kegagalan.Jika pemeriksaan keaktifan tidak berhasil dalam waktu yang ditentukan ( failureThreshold * periodSeconds), container akan dimatikan menggunakan sinyal SIGKILL. Setiap permintaan tersisa yang masih ditayangkan oleh container akan dihentikan dengan kode status HTTP 503. Setelah container dihentikan, penskalaan otomatis Cloud Run akan memulai instance container baru. |
| Keaktifan gRPC | Menerapkan protokol Health Check gRPC di layanan Cloud Run Anda | 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 layanan. Jika pemeriksaan keaktifan tidak berhasil dalam waktu yang ditentukan ( failureThreshold * periodSeconds), container akan dimatikan menggunakan sinyal SIGKILL. Setelah container dihentikan, penskalaan otomatis Cloud Run akan memulai instance container baru. |
Mengonfigurasi pemeriksaan kesiapan
Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.
Batasan berikut berlaku untuk pemeriksaan kesiapan:
Jika Anda mengaktifkan afinitas sesi, Cloud Run akan terus mengirim permintaan ke instance yang sama, meskipun health check-nya gagal.
Jika sebelumnya Anda mengonfigurasi pemeriksaan kesiapan untuk layanan Cloud Run menggunakan Cloud Run Admin API v1 sebelum November 2025, pemeriksaan kesiapan Anda tidak akan berlaku meskipun Anda men-deploy konfigurasi baru untuk layanan tersebut. Hal ini terjadi karena layanan mempertahankan konfigurasi lama. Layanan yang Anda buat setelah November 2025, atau yang tidak pernah menggunakan pemeriksaan kesiapan, tidak akan terpengaruh. Untuk mengaktifkan pemeriksaan kesiapan yang didukung pada layanan yang terpengaruh, lakukan hal berikut:
Men-deploy revisi baru yang menghapus definisi pemeriksaan kesiapan yang lebih lama.
Deploy revisi baru lainnya yang menambahkan definisi pemeriksaan kesiapan yang relevan.
Langkah-langkah ini akan menghapus konfigurasi lama dan mengaktifkan fungsi pemeriksaan kesiapan.
Anda dapat mengonfigurasi pemeriksaan kesiapan menggunakan konsol Google Cloud , Google Cloud CLI, atau YAML:
Konsol
Di konsol Google Cloud , buka Cloud Run:
Pilih Services dari menu navigasi Cloud Run:
Jika Anda mengonfigurasi layanan baru, klik Deploy container dan isi halaman setelan layanan awal. Kemudian, klik Containers, Networking, Security untuk memperluas halaman konfigurasi layanan.
Jika Anda mengonfigurasi layanan yang ada, klik layanan tersebut, lalu klik tab Containers.
Di bagian Health checks, klik Add health check untuk membuka panel konfigurasi Add health check.
Dari menu Select health check type, pilih Readiness check.
Dari menu Select probe type, pilih jenis pemeriksaan yang ingin Anda gunakan, misalnya, HTTP atau gRPC. Tindakan ini akan menampilkan formulir konfigurasi pemeriksaan.
Konfigurasi pemeriksaan bervariasi menurut jenis pemeriksaan. Konfigurasikan setelan pemeriksaan:
Jika Anda menggunakan pemeriksaan HTTP:
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya,
/startup,/health, atau/are_you_ready) harus cocok denganpathdalam konfigurasi pemeriksaan. Endpoint health check HTTP dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint layanan HTTP lainnya yang diekspos secara eksternal.Gunakan kolom Path untuk menentukan jalur relatif ke endpoint, misalnya,
/are_you_ready. Jalur default-nya adalah/.
Jika Anda menggunakan pemeriksaan gRPC:
- Pastikan image container Anda menerapkan protokol health check gRPC.
Untuk Port, tentukan port container untuk layanan Anda. Port default adalah port ingress utama.
Untuk Period, tentukan periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 hingga 300. Nilai default-nya adalah 10 detik.Untuk Success threshold, tentukan keberhasilan berturut-turut minimum agar pemeriksaan dianggap berhasil setelah gagal. Defaultnya adalah 2.
Untuk Failure threshold, tentukan frekuensi untuk mencoba kembali pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. Nilai default-nya adalah 3.
Untuk Timeout, tentukan jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 300. Nilai defaultnya adalah 1.
Klik Add untuk menambahkan nilai minimum baru.
Klik Create untuk layanan baru. Klik View diff & redeploy, lalu Deploy changes untuk layanan yang ada.
Untuk menghapus pemeriksaan, klik ikon Delete untuk health check yang ingin Anda hapus, lalu klik Confirm. Untuk men-deploy revisi baru layanan Cloud Run Anda, klik View diff & redeploy, lalu Deploy changes.
gcloud
Kesiapan HTTP
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya, /startup,
/health, atau /are_you_ready) harus cocok dengan path dalam
konfigurasi pemeriksaan. Endpoint health check HTTP dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint layanan HTTP lainnya yang diekspos secara eksternal.
Jalankan perintah berikut:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--readiness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Opsional. PATH: jalur relatif ke endpoint HTTP, misalnya,
/are_you_ready. Jalur default-nya adalah/. - Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda. Port default adalah port ingress utama.
- Opsional. SUCCESS_THRESHOLD: keberhasilan berturut-turut minimum agar pemeriksaan dianggap berhasil setelah kegagalan. Defaultnya adalah 2.
- Opsional. FAILURE_THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. Nilai defaultnya adalah 3.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 300. Nilai defaultnya adalah 1. - Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 hingga 300. Nilai default-nya adalah 10 detik.
Kesiapan gRPC
Pastikan image container Anda menerapkan protokol health check gRPC.
Jalankan perintah berikut:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--readiness-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda. Port default adalah port ingress utama.
- Opsional. GRPC_SERVICE: Jika ditetapkan, ini digunakan di kolom layanan
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - Opsional. SUCCESS_THRESHOLD: keberhasilan berturut-turut minimum agar pemeriksaan dianggap berhasil setelah kegagalan. Defaultnya adalah 2.
- Opsional. FAILURE_THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. Nilai defaultnya adalah 3.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 300. Nilai defaultnya adalah 1. - Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 hingga 300. Nilai default-nya adalah 10 detik.
YAML
Kesiapan HTTP
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya, /startup,
/health, atau /are_you_ready) harus cocok dengan path dalam
konfigurasi pemeriksaan. Endpoint health check HTTP dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint layanan HTTP lainnya yang diekspos secara eksternal.
Konfigurasikan atribut
readinessProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL readinessProbe: httpGet: path: PATH port: CONTAINER_PORT successThreshold: SUCCESS_THRESHOLD failureThreshold: FAILURE_THRESHOLD timeoutSeconds: TIMEOUT periodSeconds: PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Opsional. PATH: jalur relatif ke endpoint HTTP, misalnya,
/are_you_ready. Jalur default-nya adalah/. - Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda. Port default adalah port ingress utama.
- Opsional. SUCCESS_THRESHOLD: keberhasilan berturut-turut minimum agar pemeriksaan dianggap berhasil setelah kegagalan. Defaultnya adalah 2.
- Opsional. FAILURE_THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. Nilai defaultnya adalah 3.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 300. Nilai defaultnya adalah 1. - Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 hingga 300. Nilai default-nya adalah 10 detik.
Kesiapan gRPC
Pastikan image container Anda menerapkan protokol health check gRPC.
Konfigurasikan atribut
readinessProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: spec: containers: - image: IMAGE_URL readinessProbe: grpc: port: CONTAINER_PORT service: GRPC_SERVICE successThreshold: SUCCESS_THRESHOLD failureThreshold: FAILURE_THRESHOLD timeoutSeconds: TIMEOUT periodSeconds: PERIOD
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda. Port default adalah port ingress utama.
- Opsional. GRPC_SERVICE: Jika ditetapkan, ini digunakan di kolom layanan
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - Opsional. SUCCESS_THRESHOLD: keberhasilan berturut-turut minimum agar pemeriksaan dianggap berhasil setelah kegagalan. Defaultnya adalah 2.
- Opsional. FAILURE_THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. Nilai defaultnya adalah 3.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 300. Nilai defaultnya adalah 1. - Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 hingga 300. Nilai default-nya adalah 10 detik.
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Kesiapan HTTP
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan Anda untuk merespons pemeriksaan. Nama endpoint (misalnya, /startup,
/health, atau /are_you_ready) harus cocok dengan path dalam
konfigurasi pemeriksaan. Endpoint health check HTTP dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint layanan HTTP lainnya yang diekspos secara eksternal.
Konfigurasikan layanan Cloud Run dengan atribut readiness_probe seperti yang ditunjukkan:
resource "google_cloud_run_v2_service" "default" { name = "SERVICE" location = "REGION" deletion_protection = false # set to "true" in production template { containers { image = "IMAGE_URL" readiness_probe { timeout_seconds = TIMEOUT period_seconds = PERIOD success_threshold = SUCCESS_THRESHOLD failure_threshold = FAILURE_THRESHOLD http_get { path = "PATH" port = CONTAINER_PORT } } } } }
Ganti kode berikut:
- REGION: region Google Cloud —misalnya,
us-central1. - SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Opsional. PATH: jalur relatif ke endpoint HTTP, misalnya,
/are_you_ready. Jalur default-nya adalah/. - Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda. Port default adalah port ingress utama.
- Opsional. SUCCESS_THRESHOLD: keberhasilan berturut-turut minimum agar pemeriksaan dianggap berhasil setelah kegagalan. Defaultnya adalah 2.
- Opsional. FAILURE_THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. Nilai defaultnya adalah 3.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 300. Nilai defaultnya adalah 1. - Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 hingga 300. Nilai default-nya adalah 10 detik.
Kesiapan gRPC
Pastikan image container Anda menerapkan protokol health check gRPC.
Konfigurasikan layanan Cloud Run dengan atribut readiness_probe seperti yang ditunjukkan:
resource "google_cloud_run_v2_service" "default" { name = "SERVICE" location = "REGION" deletion_protection = "true" template { containers { image = "IMAGE_URL" readiness_probe { timeout_seconds = TIMEOUT period_seconds = PERIOD success_threshold = SUCCESS_THRESHOLD failure_threshold = FAILURE_THRESHOLD grpc { service = "GRPC_SERVICE" port = CONTAINER_PORT } } } } }
Ganti kode berikut:
- REGION: region Google Cloud —misalnya,
us-central1. - SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda. Port default adalah port ingress utama.
- Opsional. GRPC_SERVICE: Jika ditetapkan, ini digunakan di kolom layanan
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - Opsional. SUCCESS_THRESHOLD: keberhasilan berturut-turut minimum agar pemeriksaan dianggap berhasil setelah kegagalan. Defaultnya adalah 2.
- Opsional. FAILURE_THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. Nilai defaultnya adalah 3.
- Opsional. TIMEOUT: jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 300. Nilai defaultnya adalah 1. - Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 hingga 300. Nilai default-nya adalah 10 detik.
Persyaratan dan perilaku pemeriksaan kesiapan
| Jenis Pemeriksaan | Persyaratan | Perilaku |
|---|---|---|
| Kesiapan HTTP | Membuat endpoint health check HTTP Gunakan HTTP/1 |
Pemeriksaan kesiapan 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, /are_you_ready). Setiap respons 2XX atau 3XX berhasil, yang lainnya menunjukkan kegagalan.Jika instance gagal dalam pemeriksaan kesiapan di luar failureThreshold yang dikonfigurasi, Cloud Run akan berhenti merutekan permintaan baru ke instance tanpa menonaktifkannya, dan melanjutkan permintaan perutean setelah instance lulus pemeriksaan kesiapan (successThreshold kali berturut-turut). |
| Kesiapan gRPC | Menerapkan protokol Health Check gRPC di layanan Cloud Run Anda | Pemeriksaan kesiapan hanya dimulai setelah pemeriksaan startup yang dikonfigurasi berhasil. Cloud Run membuat permintaan health check gRPC ke layanan. Jika instance gagal dalam pemeriksaan kesiapan melebihi failureThreshold yang dikonfigurasi, Cloud Run akan berhenti merutekan permintaan baru ke instance tanpa menonaktifkannya, dan melanjutkan perutean permintaan setelah instance lulus pemeriksaan kesiapan (successThreshold kali berturut-turut). |
Alokasi CPU
- CPU selalu dialokasikan saat pemeriksaan berjalan.
- Semua pemeriksaan ditagih untuk konsumsi penggunaan CPU dan memori, tetapi tidak ada biaya berbasis permintaan.
Langkah berikutnya
- Pelajari cara mengonfigurasi protokol health check gRPC.
- Mengotomatiskan failover lintas region dengan health check layanan Cloud Run.