Halaman ini menjelaskan cara mengonfigurasi pemeriksaan startup HTTP, TCP, dan gRPC untuk tugas Cloud Run baru dan yang sudah ada. Konfigurasi ini bervariasi, bergantung pada jenis pemeriksaan.
Kasus penggunaan
Anda dapat mengonfigurasi pemeriksaan health check startup. Pemeriksaan startup menentukan apakah container telah dimulai dan siap menjalankan tugas.
Jika tugas berulang kali gagal dimulai, Cloud Run akan membatasi mulai ulang tugas untuk mencegah loop error yang tidak terkontrol.
Persyaratan dan perilaku probe
Jenis Probe | Persyaratan | Perilaku |
---|---|---|
Startup TCP | Tidak ada | Jika Cloud Run tidak dapat terhubung, hal ini menunjukkan kegagalan. Jika pemeriksaan startup tidak berhasil dalam interval waktu yang ditentukan, Cloud Run akan menonaktifkan penampung. Interval waktu ini dihitung sebagai failureThreshold * periodSeconds dan tidak boleh melebihi 240 detik. |
Startup HTTP | Membuat endpoint health check HTTP Gunakan HTTP/1 |
Setelah Anda mengonfigurasi pemeriksaan, Cloud Run akan membuat permintaan HTTP GET ke endpoint pemeriksaan kesehatan tugas (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, penampung akan dimatikan |
Startup gRPC | Menerapkan protokol Health Check gRPC di tugas Cloud Run | Jika pemeriksaan startup tidak berhasil dalam waktu yang ditentukan (failureThreshold * periodSeconds ), yang tidak dapat melebihi 240 detik, container akan dimatikan |
Mengonfigurasi probe
Konfigurasikan pemeriksaan HTTP, TCP, dan gRPC menggunakan konsol atau YAML Google Cloud :
Konsol
Penting: Jika mengonfigurasi tugas Cloud Run untuk pemeriksaan HTTP, Anda juga harus menambahkan endpoint pemeriksaan kesehatan HTTP dalam kode tugas untuk merespons pemeriksaan tersebut. Jika mengonfigurasi pemeriksaan gRPC, Anda juga harus menerapkan protokol Health Check gRPC dalam tugas Cloud Run.
Di konsol Google Cloud , buka halaman Cloud Run.
Untuk tugas baru, klik DEPLOY CONTAINER, lalu klik Job. Untuk tugas yang ada, klik tab Jobs, klik tugas yang Anda inginkan, lalu klik VIEW AND EDIT JOB CONFIGURATION.
Luaskan Container(s), volumes, networking, security.
Di bagian Container, buka Health checks, lalu klik Add health check untuk membuka panel konfigurasi Add health check.
Dari menu Select health check type, pilih jenis startup health check.
Dari menu Select probe type, pilih jenis probe, seperti HTTP atau gRPC. Tindakan ini akan menampilkan formulir konfigurasi probe.
Perhatikan bahwa konfigurasi probe bervariasi menurut jenis probe. Konfigurasikan setelan probe:
- Jika Anda menggunakan probe HTTP:
- Gunakan kolom Jalur untuk menentukan jalur relatif ke endpoint, misalnya,
/
. - Centang kotak HTTP Headers untuk menentukan header kustom opsional. Kemudian, tentukan nama header di kolom Nama dan nilai header di kolom Nilai. Klik Tambahkan header HTTP untuk menentukan header lainnya.
- Gunakan kolom Jalur untuk menentukan jalur relatif ke endpoint, misalnya,
- Untuk Port, tentukan port tempat penampung tugas memproses probe.
- Untuk Penundaan awal, tentukan jumlah detik untuk menunggu setelah penampung dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 240 detik. Nilai default-nya adalah 0 detik.
- Untuk Periode, tentukan interval waktu (dalam detik) untuk melakukan pemeriksaan. Misalnya,
2
melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik. - Untuk Batas kegagalan, tentukan frekuensi untuk mencoba kembali pemeriksaan sebelum menutup penampung. Nilai defaultnya adalah 3.
- Untuk Waktu tunggu, tentukan 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.
- Jika Anda menggunakan probe HTTP:
Klik Tambahkan untuk menambahkan nilai minimum baru
YAML
Penting: Jika mengonfigurasi tugas Cloud Run untuk pemeriksaan HTTP, Anda juga harus menambahkan endpoint dalam kode tugas untuk merespons pemeriksaan tersebut. Jika mengonfigurasi pemeriksaan gRPC, Anda juga harus menerapkan protokol Health Check gRPC dalam tugas Cloud Run.
Startup TCP
Jika Anda membuat tugas baru, lewati langkah ini. Jika Anda mengupdate tugas yang ada, download konfigurasi YAML-nya:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Konfigurasikan atribut
startupProbe
seperti yang ditunjukkan berikut:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: metadata: spec: containers: - image: IMAGE_URL startupProbe: tcpSocket: port: CONTAINER_PORT initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Ganti variabel berikut:
- JOB dengan nama tugas Cloud Run Anda.
- IMAGE_URL dengan URL image container tugas, misalnya,
us-docker.pkg.dev/cloudrun/container/job:latest
. - Opsional: CONTAINER_PORT dengan port tempat penampung tugas memproses pemeriksaan.
- DELAY dengan 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.
- Opsional: TIMEOUT dengan 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 dengan frekuensi untuk mencoba kembali pemeriksaan sebelum menutup container. Nilai defaultnya adalah 3.
- PERIOD dengan periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2
melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
Buat atau perbarui tugas menggunakan perintah berikut:
gcloud run jobs replace job.yaml
Startup HTTP
Jika Anda membuat tugas baru, lewati langkah ini. Jika Anda mengupdate tugas yang ada, download konfigurasi YAML-nya:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Konfigurasikan atribut
startupProbe
seperti yang ditunjukkan berikut:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB 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 variabel berikut:
- JOB dengan nama tugas Cloud Run Anda.
- IMAGE_URL dengan URL image container tugas, misalnya,
us-docker.pkg.dev/cloudrun/container/job:latest
. - PATH dengan jalur relatif ke endpoint HTTP, misalnya,
/ready
. - Opsional: CONTAINER_PORT dengan port tempat penampung tugas memproses pemeriksaan.
- Opsional:
httpHeaders
dapat digunakan untuk menyediakan beberapa header kustom atau berulang menggunakan kolom HEADER_NAME dan HEADER_VALUE seperti yang ditunjukkan. - Opsional: DELAY dengan 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.
- Opsional: TIMEOUT dengan 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. - Opsional: THRESHOLD dengan frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan penampung. Nilai defaultnya adalah 3.
- Opsional: PERIOD dengan periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2
melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
Buat atau perbarui tugas menggunakan perintah berikut:
gcloud run jobs replace job.yaml
Startup gRPC
Jika Anda membuat tugas baru, lewati langkah ini. Jika Anda mengupdate tugas yang ada, download konfigurasi YAML-nya:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Konfigurasikan atribut
startupProbe
seperti yang ditunjukkan berikut:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB 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 variabel berikut:
- JOB dengan nama tugas Cloud Run Anda.
- IMAGE_URL dengan URL image container tugas, misalnya,
us-docker.pkg.dev/cloudrun/container/job:latest
. - Opsional: GRPC_SERVICE. Jika ditetapkan, nilai ini akan digunakan di
kolom layanan
grpc.health.v1.HealthCheckRequest
saat RPCgrpc.health.v1.Health.Check
dipanggil. - Opsional: CONTAINER_PORT dengan port tempat penampung tugas memproses pemeriksaan.
- Opsional: DELAY dengan jumlah detik untuk menunggu setelah penampung dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 240 detik. Nilai default-nya adalah 0 detik.
- Opsional: WAKTU TUNGGU dengan 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.
- Opsional: THRESHOLD dengan frekuensi untuk mencoba kembali pemeriksaan sebelum menonaktifkan penampung. Nilai defaultnya adalah 3.
- Opsional: PERIOD dengan periode (dalam detik) untuk melakukan pemeriksaan.
Misalnya,
2
melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
Buat atau perbarui tugas menggunakan perintah berikut:
gcloud run jobs replace job.yaml
Membuat endpoint health check HTTP
Jika mengonfigurasi tugas Cloud Run untuk pemeriksaan startup HTTP, Anda
harus menambahkan endpoint dalam kode tugas untuk merespons pemeriksaan tersebut. Anda dapat menggunakan nama apa pun untuk endpoint, seperti /startup
atau /ready
. Nama 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 seperti yang ditunjukkan:
startupProbe: httpGet: path: /ready