Mengonfigurasi health check penampung untuk 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 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.

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

    Buka Cloud Run

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

  3. Luaskan Container(s), Volumes, Networking, Security.

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

  5. Dari menu Pilih jenis pemeriksaan kondisi, pilih jenis startup pemeriksaan kondisi.

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

  7. 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.
    • 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, 2 melakukan 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.
  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 di tugas Cloud Run.

Startup TCP

  1. 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
  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 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, 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 memperbarui 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 container 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 mematikan container. 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 memperbarui 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 disetel, 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 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, 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 Anda seperti yang ditunjukkan di bawah ini:

startupProbe:
  httpGet:
    path: /ready