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 pemeriksaan
| Jenis Probe | Persyaratan | Perilaku |
|---|---|---|
| Startup TCP | Tidak ada | Jika Cloud Run tidak dapat membuat koneksi, hal ini menunjukkan kegagalan. Jika pemeriksaan startup tidak berhasil dalam interval waktu yang ditentukan, Cloud Run akan mematikan container. Interval waktu ini dihitung sebagai failureThreshold * periodSeconds dan tidak boleh melebihi 240 detik. |
| Startup HTTP | Buat 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, container akan dimatikan |
| Startup gRPC | Menerapkan protokol Pemeriksaan Kesehatan 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 pemeriksaan
Konfigurasi pemeriksaan HTTP, TCP, dan gRPC menggunakan Google Cloud konsol atau YAML:
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 di tugas Cloud Run.
Di konsol Google Cloud , buka halaman Tugas Cloud Run:
Untuk tugas baru, klik Deploy container. Untuk tugas yang ada, klik tab Tugas, klik tugas yang Anda inginkan, lalu klik Lihat dan edit konfigurasi tugas.
Luaskan Container(s), Volumes, Networking, Security.
Di bagian Container(s), buka Health checks, lalu klik Add health check untuk membuka panel konfigurasi Add health check.
Dari menu Pilih jenis pemeriksaan kondisi, pilih jenis startup pemeriksaan kondisi.
Dari menu Pilih jenis probe, pilih jenis probe, seperti HTTP atau gRPC. Tindakan ini akan menampilkan formulir konfigurasi probe.
Perhatikan bahwa konfigurasi pemeriksaan bervariasi menurut jenis pemeriksaan. Konfigurasi setelan pemeriksaan:
- Jika Anda menggunakan pemeriksaan HTTP:
- Gunakan kolom Path untuk menentukan jalur relatif ke endpoint, misalnya,
/. - Centang kotak HTTP Headers untuk menentukan header kustom opsional. Kemudian, tentukan nama header di kolom Nama dan nilai header di kolom Nilai. Klik Add HTTP header untuk menentukan lebih banyak header.
- Gunakan kolom Path untuk menentukan jalur relatif ke endpoint, misalnya,
- Untuk Port, tentukan port tempat container tugas memproses probe.
- Untuk Penundaan awal, tentukan berapa detik untuk menunggu setelah container 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,
2melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik. - Untuk Nilai minimum kegagalan, tentukan berapa kali pemeriksaan harus dicoba kembali sebelum mematikan container. 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 pemeriksaan 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 di tugas Cloud Run.
Startup TCP
Jika Anda membuat tugas baru, lewati langkah ini. Jika Anda memperbarui tugas yang ada, download konfigurasi YAML-nya:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Konfigurasikan atribut
startupProbeseperti 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 container 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 mematikan container. Nilai defaultnya adalah 3.
- PERIOD dengan 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 tugas menggunakan perintah berikut:
gcloud run jobs replace job.yaml
Startup HTTP
Jika Anda membuat tugas baru, lewati langkah ini. Jika Anda memperbarui tugas yang ada, download konfigurasi YAML-nya:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Konfigurasikan atribut
startupProbeseperti 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 container tugas memproses pemeriksaan.
- Opsional:
httpHeadersdapat 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 mematikan container. Nilai defaultnya adalah 3.
- Opsional: PERIOD dengan 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 tugas menggunakan perintah berikut:
gcloud run jobs replace job.yaml
Startup gRPC
Jika Anda membuat tugas baru, lewati langkah ini. Jika Anda memperbarui tugas yang ada, download konfigurasi YAML-nya:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Konfigurasikan atribut
startupProbeseperti 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 disetel, nilai ini akan digunakan di
kolom layanan
grpc.health.v1.HealthCheckRequestsaat RPCgrpc.health.v1.Health.Checkdipanggil. - Opsional: CONTAINER_PORT dengan port tempat container tugas memproses pemeriksaan.
- 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 mematikan container. Nilai defaultnya adalah 3.
- Opsional: PERIOD dengan 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 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 Anda seperti yang ditunjukkan di bawah ini:
startupProbe: httpGet: path: /ready