Mengonfigurasi health check container (tugas)

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.

  1. Di konsol Google Cloud , buka halaman Cloud Run.

    Buka Cloud Run

  2. 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.

  3. Luaskan Container(s), volumes, networking, security.

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

  5. Dari menu Select health check type, pilih jenis startup health check.

  6. Dari menu Select probe type, pilih jenis probe, seperti HTTP atau gRPC. Tindakan ini akan menampilkan formulir konfigurasi probe.

  7. 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.
    • 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.
  8. 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

  1. 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
  2. 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.
  3. Buat atau perbarui tugas menggunakan perintah berikut:

    gcloud run jobs replace job.yaml

Startup HTTP

  1. 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
  2. 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.
  3. Buat atau perbarui tugas menggunakan perintah berikut:

    gcloud run jobs replace job.yaml

Startup gRPC

  1. 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
  2. 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 RPC grpc.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.
  3. 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