Health check Cloud Run memastikan bahwa instance container Anda berjalan dengan benar dan dapat melayani traffic. Dengan health check Cloud Run, Anda dapat menyesuaikan kapan container Anda siap menerima permintaan, dan kapan container Anda harus dianggap tidak responsif sehingga memerlukan mulai ulang.
Kasus penggunaan
Anda dapat mengonfigurasi jenis pemeriksaan health check berikut:
- Pemeriksaan waktu mulai menentukan apakah container telah dimulai dan siap menerima traffic.
- Pemeriksaan keaktifan menentukan apakah akan memulai ulang
container.
- Memulai ulang container dalam hal ini dapat meningkatkan ketersediaan instance 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, seperti mendeteksi kebuntuan saat instance berjalan, tetapi tidak dapat membuat progres. Anda dapat mewajibkan pemeriksaan keaktifan untuk setiap container menggunakan kebijakan organisasi kustom.
- Jika instance mengalami kegagalan pemeriksaan berulang kali, Cloud Run akan membatasi mulai ulang instance untuk mencegah loop error yang tidak terkontrol.
Pemeriksaan kesiapan (Pratinjau)
Pemeriksaan kesiapan menentukan kapan instance di instance Cloud Run Anda harus melayani traffic. Pemeriksaan kesiapan dimulai setelah pemeriksaan startup penampung berhasil lulus. Jika instance gagal dalam pemeriksaan kesiapannya di luar nilai minimum kegagalan yang Anda konfigurasi, Cloud Run akan berhenti mengirim traffic baru ke instance tersebut. Cloud Run tidak menghentikan instance dan mengirimkan traffic kembali ke instance saat instance mulai lulus pemeriksaan kesiapannya lagi.
Container Anda harus menerapkan pemeriksaan startup, keaktifan, dan kesiapan secara konsisten. Setelah pemeriksaan startup berhasil, Cloud Run menganggap container Anda siap melayani traffic.
Sebaiknya enkapsulasi logika Anda sehingga pemeriksaan startup memperhitungkan kesiapan. Karena Cloud Run dapat merutekan traffic ke instance baru sebelum pemeriksaan kesiapan pertama selesai, pastikan bahwa lulus pemeriksaan startup juga memastikan kesiapan untuk melayani traffic dengan aman secara langsung. Jika pemeriksaan waktu mulai berhasil, kami akan memperlakukan container sebagai siap menerima traffic.
Mengonfigurasi pemeriksaan startup
Anda dapat mengonfigurasi pemeriksaan HTTP, TCP, dan gRPC menggunakan Google Cloud CLI atau YAML:
gcloud
Startup TCP
Jalankan perintah berikut:
gcloud beta run instances create INSTANCE \
--image=IMAGE_URL \
--startup-probe tcpSocket.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Ganti kode berikut:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - CONTAINER_PORT (Opsional): port container yang digunakan untuk instance Anda.
- DELAY: 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.
- TIMEOUT (Opsional): jumlah detik untuk menunggu hingga waktu pemeriksaan
habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 240. Nilai defaultnya adalah 1. - THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum mematikan container. Nilai defaultnya adalah 3.
- PERIOD: periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
Startup HTTP
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode
instance 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 instance HTTP lainnya yang diekspos secara eksternal.
Jalankan perintah berikut:
gcloud beta run instances create INSTANCE \
--image=IMAGE_URL \
--startup-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Ganti kode berikut:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: jalur relatif ke endpoint HTTP, misalnya,
/health. - CONTAINER_PORT (Opsional): ditetapkan ke port container yang digunakan untuk instance Anda.
- DELAY (Opsional): 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.
- THRESHOLD (Opsional): frekuensi untuk mencoba kembali pemeriksaan sebelum mematikan container. Nilai defaultnya adalah 3.
- TIMEOUT (Opsional): jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 240. Nilai defaultnya adalah 1.
- PERIOD (Opsional): periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
Startup gRPC
Pastikan image container Anda menerapkan protokol health check gRPC.
Jalankan perintah berikut:
gcloud beta run instances create INSTANCE \
--image=IMAGE_URL \
--startup-probe grpc.port=CONTAINER_PORT,grpc.instance=GRPC_INSTANCE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Ganti kode berikut:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - GRPC_INSTANCE (Opsional): Jika disetel, nilai ini akan digunakan di
kolom instance
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - CONTAINER_PORT (Opsional): port container yang digunakan untuk instance Anda.
- DELAY (Opsional): 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.
- THRESHOLD (Opsional): frekuensi untuk mencoba kembali pemeriksaan sebelum mematikan container. Nilai defaultnya adalah 3.
- TIMEOUT (Opsional): jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 240. Nilai defaultnya adalah 1.
- PERIOD (Opsional): periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
YAML
Startup TCP
Jika Anda membuat instance baru, lewati langkah ini. Jika Anda memperbarui instance yang ada, download konfigurasi YAML-nya:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Konfigurasikan atribut
startupProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - image: IMAGE_URL startupProbe: tcpSocket: port: CONTAINER_PORT initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Ganti kode berikut:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - CONTAINER_PORT (Opsional): port container yang digunakan untuk instance Anda.
- DELAY: 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.
- TIMEOUT (Opsional): jumlah detik untuk menunggu hingga waktu pemeriksaan
habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk
periodSeconds. Tentukan nilai dari 1 hingga 240. Nilai defaultnya adalah 1. - THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum mematikan container. Nilai defaultnya adalah 3.
- PERIOD: periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
-
Buat atau perbarui instance menggunakan perintah berikut:
gcloud beta run instances replace instance.yaml
Startup HTTP
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode
instance 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 instance HTTP lainnya yang diekspos secara eksternal.
Jika Anda membuat instance baru, lewati langkah ini. Jika Anda memperbarui instance yang ada, download konfigurasi YAML-nya:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Konfigurasikan atribut
startupProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA 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:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: jalur relatif ke endpoint HTTP, misalnya,
/health. - CONTAINER_PORT (Opsional): ditetapkan ke port container yang digunakan untuk instance Anda.
- DELAY (Opsional): 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.
- THRESHOLD (Opsional): frekuensi untuk mencoba kembali pemeriksaan sebelum mematikan 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. - TIMEOUT (Opsional): jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 240. Nilai defaultnya adalah 1.
- PERIOD (Opsional): periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
Jika Anda membuat instance baru, lewati langkah ini. Jika Anda memperbarui instance yang ada, download konfigurasi YAML-nya:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Startup gRPC
Pastikan image container Anda menerapkan protokol health check gRPC.
Jika Anda membuat instance baru, lewati langkah ini. Jika Anda memperbarui instance yang ada, download konfigurasi YAML-nya:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Konfigurasikan atribut
startupProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - image: IMAGE_URL startupProbe: grpc: instance: GRPC_INSTANCE port: CONTAINER_PORT initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Ganti kode berikut:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - GRPC_INSTANCE (Opsional): Jika disetel, nilai ini akan digunakan di
kolom instance
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - CONTAINER_PORT (Opsional): port container yang digunakan untuk instance Anda.
- DELAY (Opsional): 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.
- THRESHOLD (Opsional): frekuensi untuk mencoba kembali pemeriksaan sebelum mematikan container. Nilai defaultnya adalah 3.
- TIMEOUT (Opsional): jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 240. Nilai defaultnya adalah 1.
- PERIOD (Opsional): periode (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
Jika Anda membuat instance baru, lewati langkah ini. Jika Anda memperbarui instance yang ada, download konfigurasi YAML-nya:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Pemeriksaan waktu mulai TCP default
Jika Anda tidak mengonfigurasi pemeriksaan startup TCP secara eksplisit untuk instance 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 probe di halaman ini.
Persyaratan dan perilaku pemeriksaan waktu mulai
| Jenis Probe | 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 240 detik, container akan dimatikan. Lihat juga default TCP. |
| Startup HTTP | Membuat endpoint health check HTTP Menggunakan 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 dapat melebihi 240 detik, container akan dimatikan. |
| Startup gRPC | Menerapkan protokol Health Check gRPC di instance Cloud Run Anda | Jika pemeriksaan startup tidak berhasil dalam waktu yang ditentukan (failureThreshold * periodSeconds), yang tidak dapat melebihi 240 detik, container akan dimatikan. |
Mengonfigurasi pemeriksaan keaktifan
Anda dapat mengonfigurasi pemeriksaan HTTP dan gRPC menggunakan Google Cloud SDK atau YAML:
gcloud
Keaktifan HTTP
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode
instance 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 instance HTTP lainnya yang diekspos secara eksternal.
Jalankan perintah berikut:
gcloud beta run instances deploy INSTANCE \
--image=IMAGE_URL \
--liveness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Ganti kode berikut:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: jalur relatif ke endpoint HTTP, misalnya,
/health. - CONTAINER_PORT (Opsional): ditetapkan ke port container yang digunakan untuk instance Anda.
- DELAY (Opsional): 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.
- THRESHOLD (Opsional): frekuensi untuk mencoba kembali pemeriksaan sebelum mematikan 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.Nilai 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 beta run instances deploy INSTANCE \
--image=IMAGE_URL \
--liveness-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Ganti kode berikut:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - GRPC_INSTANCE (Opsional): Jika disetel, nilai ini akan digunakan di
kolom instance
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - CONTAINER_PORT (Opsional): port container yang digunakan untuk instance Anda.
- DELAY (Opsional): 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.
- THRESHOLD (Opsional): frekuensi untuk mencoba kembali pemeriksaan sebelum mematikan 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.Nilai 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
instance 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 instance HTTP lainnya yang diekspos secara eksternal.
-
Jika Anda membuat instance baru, lewati langkah ini. Jika Anda mengupdate instance yang ada, download
konfigurasi YAML-nya:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Konfigurasikan atribut
livenessProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA 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:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH: jalur relatif ke endpoint HTTP, misalnya,
/health. - CONTAINER_PORT (Opsional): ditetapkan ke port container yang digunakan untuk instance Anda.
- DELAY (Opsional): 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.
- THRESHOLD (Opsional): frekuensi untuk mencoba kembali pemeriksaan sebelum mematikan 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.Nilai 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.
-
Buat atau perbarui instance menggunakan perintah berikut:
gcloud beta run instances replace instance.yaml
Keaktifan gRPC
Pastikan image container Anda menerapkan protokol health check gRPC.
-
Jika Anda membuat instance baru, lewati langkah ini. Jika Anda mengupdate instance yang ada, download
konfigurasi YAML-nya:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Konfigurasikan atribut
livenessProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - image: IMAGE_URL livenessProbe: grpc: port: CONTAINER_PORT service: GRPC_SERVICE initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Ganti kode berikut:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - GRPC_INSTANCE (Opsional): Jika disetel, nilai ini akan digunakan di
kolom instance
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - CONTAINER_PORT (Opsional): port container yang digunakan untuk instance Anda.
- DELAY (Opsional): 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.
- THRESHOLD (Opsional): frekuensi untuk mencoba kembali pemeriksaan sebelum mematikan 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.Nilai 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.
-
Buat atau perbarui instance menggunakan perintah berikut:
gcloud beta run instances replace instance.yaml
Persyaratan dan perilaku pemeriksaan keaktifan
| Jenis Probe | Persyaratan | Perilaku |
|---|---|---|
| Keaktifan HTTP | Membuat endpoint health check HTTP Menggunakan 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. Semua permintaan yang tersisa yang masih ditayangkan oleh penampung dihentikan dengan kode status HTTP 503. Setelah container dimatikan, penskalaan otomatis Cloud Run akan memulai instance container baru. |
| Keaktifan gRPC | Menerapkan protokol Health Check gRPC di instance 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 instance. Jika pemeriksaan keaktifan tidak berhasil dalam waktu yang ditentukan ( failureThreshold * periodSeconds), container akan dimatikan menggunakan sinyal SIGKILL. Setelah container dimatikan, penskalaan otomatis Cloud Run akan memulai instance container baru. |
Mengonfigurasi pemeriksaan kesiapan
Batasan berikut berlaku untuk pemeriksaan kesiapan:- Jika Anda mengaktifkan afinitas sesi, Cloud Run akan terus mengirim permintaan ke instance yang sama, meskipun pemeriksaan kesiapannya gagal.
Anda dapat mengonfigurasi pemeriksaan kesiapan menggunakan Google Cloud CLI atau YAML:
gcloud
Kesiapan HTTP
Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode
instance 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 instance HTTP lainnya yang diekspos secara eksternal.
Jalankan perintah berikut:
gcloud beta run instances deploy INSTANCE \
--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:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH (Opsional): jalur relatif ke endpoint HTTP, misalnya,
/are_you_ready. Jalur default-nya adalah/. - CONTAINER_PORT (Opsional): port container yang digunakan untuk instance Anda. Port default adalah port masuk utama.
- SUCCESS_THRESHOLD (Opsional): keberhasilan beruntun minimum agar pemeriksaan dianggap berhasil setelah gagal. Defaultnya adalah 2.
- FAILURE_THRESHOLD (Opsional): jumlah percobaan ulang pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. Nilai defaultnya adalah 3.
- TIMEOUT (Opsional): 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. - PERIOD (Opsional): 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 beta run instances deploy INSTANCE \
--image=IMAGE_URL \
--readiness-probe grpc.port=CONTAINER_PORT,grpc.instance=GRPC_INSTANCE,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Ganti kode berikut:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - CONTAINER_PORT (Opsional): port container yang digunakan untuk instance Anda. Port default adalah port masuk utama.
- GRPC_INSTANCE (Opsional): Jika disetel, nilai ini akan digunakan di
kolom instance
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - SUCCESS_THRESHOLD (Opsional): keberhasilan beruntun minimum agar pemeriksaan dianggap berhasil setelah gagal. Defaultnya adalah 2.
- FAILURE_THRESHOLD (Opsional): jumlah percobaan ulang pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. Nilai defaultnya adalah 3.
- TIMEOUT (Opsional): 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. - PERIOD (Opsional): 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
instance 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 instance HTTP lainnya yang diekspos secara eksternal.
-
Jika Anda membuat instance baru, lewati langkah ini. Jika Anda mengupdate instance yang ada, download
konfigurasi YAML-nya:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Konfigurasikan atribut
readinessProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA 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:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - PATH (Opsional): jalur relatif ke endpoint HTTP, misalnya,
/are_you_ready. Jalur default-nya adalah/. - CONTAINER_PORT (Opsional): port container yang digunakan untuk instance Anda. Port default adalah port masuk utama.
- SUCCESS_THRESHOLD (Opsional): keberhasilan beruntun minimum agar pemeriksaan dianggap berhasil setelah gagal. Defaultnya adalah 2.
- FAILURE_THRESHOLD (Opsional): jumlah percobaan ulang pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. Nilai defaultnya adalah 3.
- TIMEOUT (Opsional): 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. - PERIOD (Opsional): periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 hingga 300. Nilai default-nya adalah 10 detik.
-
Buat atau perbarui instance menggunakan perintah berikut:
gcloud beta run instances replace instance.yaml
Kesiapan gRPC
Pastikan image container Anda menerapkan protokol health check gRPC.
-
Jika Anda membuat instance baru, lewati langkah ini. Jika Anda mengupdate instance yang ada, download
konfigurasi YAML-nya:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Konfigurasikan atribut
readinessProbeseperti yang ditunjukkan berikut:apiVersion: serving.knative.dev/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: spec: containers: - image: IMAGE_URL readinessProbe: grpc: port: CONTAINER_PORT instance: GRPC_INSTANCE successThreshold: SUCCESS_THRESHOLD failureThreshold: FAILURE_THRESHOLD timeoutSeconds: TIMEOUT periodSeconds: PERIOD
Ganti kode berikut:
- INSTANCE: nama instance 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - CONTAINER_PORT (Opsional): port container yang digunakan untuk instance Anda. Port default adalah port masuk utama.
- GRPC_INSTANCE (Opsional): Jika disetel, nilai ini akan digunakan di
kolom instance
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - SUCCESS_THRESHOLD (Opsional): keberhasilan beruntun minimum agar pemeriksaan dianggap berhasil setelah gagal. Defaultnya adalah 2.
- FAILURE_THRESHOLD (Opsional): jumlah percobaan ulang pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. Nilai defaultnya adalah 3.
- TIMEOUT (Opsional): 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. - PERIOD (Opsional): periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 hingga 300. Nilai default-nya adalah 10 detik.
-
Buat atau perbarui instance menggunakan perintah berikut:
gcloud beta run instances replace instance.yaml
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.