Mengonfigurasi health check container untuk layanan

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 siap menerima permintaan, dan kapan container harus dianggap tidak responsif sehingga memerlukan mulai ulang.

Kasus penggunaan

Anda dapat mengonfigurasi jenis pemeriksaan health check berikut:

  • Pemeriksaan startup menentukan apakah container telah dimulai dan siap menerima traffic.

    • Saat Anda mengonfigurasi pemeriksaan startup, pemeriksaan keaktifan dan kesiapan dinonaktifkan hingga pemeriksaan startup menentukan bahwa container dimulai, untuk mencegah gangguan pada startup layanan.
    • Pemeriksaan startup sangat berguna jika Anda menggunakan pemeriksaan keaktifan pada container yang dimulai dengan lambat, karena pemeriksaan startup mencegah container dimatikan sebelum waktunya sebelum container aktif dan berjalan.
  • Pemeriksaan keaktifan menentukan apakah akan memulai ulang container.

    • Memulai ulang container dalam hal ini dapat meningkatkan ketersediaan layanan 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 layanan berjalan, tetapi tidak dapat membuat progres. Anda dapat mewajibkan pemeriksaan keaktifan untuk setiap container menggunakan kebijakan organisasi kustom.
    • Jika layanan mengalami kegagalan pemeriksaan berulang kali, Cloud Run membatasi mulai ulang instance untuk mencegah loop error yang tidak terkontrol.
  • Pemeriksaan kesiapan (Pratinjau)

    Pemeriksaan kesiapan menentukan kapan instance di layanan 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.

Mengonfigurasi pemeriksaan startup

Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.

Anda dapat mengonfigurasi pemeriksaan HTTP, TCP, dan gRPC menggunakan Google Cloud konsol, YAML, atau Terraform:

Konsol

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

    Buka Cloud Run

  2. Untuk layanan baru, luaskan Container(s), Volumes, Networking, Security untuk menampilkan opsi pemeriksaan kondisi. Untuk layanan yang sudah ada, klik layanan yang ingin Anda konfigurasi, lalu klik Edit dan deploy untuk menampilkan opsi pemeriksaan kondisi.

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

  4. Dari menu Pilih jenis pemeriksaan kondisi, pilih Pemeriksaan saat startup.

  5. Dari menu Pilih jenis probe, pilih jenis probe yang ingin Anda gunakan, misalnya, HTTP atau gRPC. Tindakan ini akan menampilkan formulir konfigurasi probe.

  6. Konfigurasi pemeriksaan bervariasi menurut jenis pemeriksaan. Konfigurasi setelan pemeriksaan:

    • Jika Anda menggunakan pemeriksaan HTTP:

      • Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan 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 layanan HTTP lainnya yang diekspos secara eksternal.

      • Gunakan kolom Path untuk menentukan jalur relatif ke endpoint, misalnya, /.

      • Centang kotak HTTP Headers untuk menentukan header kustom opsional. Tentukan nama header di kolom Nama dan nilai header di kolom Nilai. Klik Add HTTP header untuk menentukan lebih banyak header.

    • Jika Anda menggunakan pemeriksaan gRPC:

    • Untuk Port, tentukan port container yang digunakan untuk layanan Anda.

    • Untuk Penundaan awal, tentukan 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.

    • Untuk Period, tentukan 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.

    • Untuk Batas kegagalan, tentukan jumlah percobaan ulang pemeriksaan 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.

  7. Klik Tambahkan untuk menambahkan nilai minimum baru.

  8. Klik Buat atau Deploy.

gcloud

Startup TCP

Jalankan perintah berikut:

  gcloud run deploy SERVICE \
      --image=IMAGE_URL \
      --startup-probe tcpSocket.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Ganti kode berikut:

  • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan 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.
  • 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 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, 2 melakukan 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 layanan 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 layanan HTTP lainnya yang diekspos secara eksternal.

Jalankan perintah berikut:

  gcloud run deploy SERVICE \
      --image=IMAGE_URL \
      --startup-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Ganti kode berikut:

  • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • PATH: jalur relatif ke endpoint HTTP, misalnya, /health.
  • Opsional. CONTAINER_PORT: ditetapkan ke port container yang digunakan untuk layanan Anda.
  • Opsional. 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.
  • Opsional. THRESHOLD: 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 240. Nilai defaultnya adalah 1.
  • Opsional. PERIOD: 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.

Startup gRPC

Pastikan image container Anda menerapkan protokol health check gRPC.

Jalankan perintah berikut:

  gcloud run deploy SERVICE \
      --image=IMAGE_URL \
      --startup-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Ganti kode berikut:

  • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Opsional. GRPC_SERVICE: Jika disetel, nilai ini digunakan di kolom layanan grpc.health.v1.HealthCheckRequest saat rpc grpc.health.v1.Health.Check dipanggil.
  • Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda.
  • Opsional. 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.
  • Opsional. THRESHOLD: 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 240. Nilai defaultnya adalah 1.
  • Opsional. PERIOD: 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.

YAML

Startup TCP

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurasikan atribut startupProbe seperti yang ditunjukkan berikut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
     template:
       metadata:
       spec:
         containers:
         - image: IMAGE_URL
           startupProbe:
             tcpSocket:
               port: CONTAINER_PORT
             initialDelaySeconds: DELAY
             timeoutSeconds: TIMEOUT
             failureThreshold: THRESHOLD
             periodSeconds: PERIOD

    Ganti kode berikut:

    • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan 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.
    • 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 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, 2 melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
  3. Buat atau perbarui layanan menggunakan perintah berikut:
    gcloud run services replace service.yaml

Startup HTTP

Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan 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 layanan HTTP lainnya yang diekspos secara eksternal.

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurasikan atribut startupProbe seperti yang ditunjukkan berikut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    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 kode berikut:

    • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • PATH: jalur relatif ke endpoint HTTP, misalnya, /health.
    • Opsional. CONTAINER_PORT: ditetapkan ke port container yang digunakan untuk layanan Anda.
    • Opsional. 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.
    • Opsional. THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum mematikan container. Nilai defaultnya adalah 3.
    • Opsional: httpHeaders dapat 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 240. Nilai defaultnya adalah 1.
    • Opsional. PERIOD: 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 layanan menggunakan perintah berikut:
    gcloud run services replace service.yaml

Startup gRPC

Pastikan image container Anda menerapkan protokol health check gRPC.

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurasikan atribut startupProbe seperti yang ditunjukkan berikut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    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 kode berikut:

    • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Opsional. GRPC_SERVICE: Jika disetel, nilai ini digunakan di kolom layanan grpc.health.v1.HealthCheckRequest saat rpc grpc.health.v1.Health.Check dipanggil.
    • Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda.
    • Opsional. 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.
    • Opsional. THRESHOLD: 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 240. Nilai defaultnya adalah 1.
    • Opsional. PERIOD: 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 layanan menggunakan perintah berikut:
    gcloud run services replace service.yaml

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Startup TCP

Konfigurasikan layanan Cloud Run dengan atribut startup_probe seperti yang ditunjukkan:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        tcp_socket {
          port = 8080
        }
      }
    }
  }
}

Startup HTTP

Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan 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 layanan HTTP lainnya yang diekspos secara eksternal.

Konfigurasikan layanan Cloud Run dengan atribut startup_probe seperti yang ditunjukkan:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        http_get {
          path = "/"
          # Custom headers to set in the request
          # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#http_headers
          http_headers {
            name  = "Access-Control-Allow-Origin"
            value = "*"
          }
        }
      }
    }
  }
}

Startup gRPC

Pastikan image container Anda menerapkan protokol health check gRPC.

Konfigurasikan layanan Cloud Run dengan atribut startup_probe seperti yang ditunjukkan:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      # Note: Change to the name of your image
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        grpc {
          # Note: Change to the name of your pre-existing grpc health status service
          service = "grpc.health.v1.Health"
        }
      }
    }
  }
}

Pemeriksaan startup TCP default

Jika Anda tidak mengonfigurasi pemeriksaan startup TCP secara eksplisit untuk layanan 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 startup

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 Buat endpoint health check HTTP
Gunakan HTTP/1
Setelah konfigurasi pemeriksaan, Cloud Run akan membuat permintaan HTTP GET ke endpoint pemeriksaan kesehatan (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.

Jika pemeriksaan startup HTTP berhasil dalam waktu yang ditentukan, dan Anda telah mengonfigurasi pemeriksaan keaktifan HTTP, pemeriksaan keaktifan HTTP akan dimulai.
Startup gRPC Menerapkan protokol Pemeriksaan Kesehatan gRPC di layanan 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

Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.

Anda dapat mengonfigurasi pemeriksaan HTTP dan gRPC menggunakan Google Cloud konsol, YAML, atau Terraform:

Konsol

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

    Buka Cloud Run

  2. Untuk layanan baru, luaskan Container(s), Volumes, Networking, Security untuk menampilkan opsi pemeriksaan kondisi. Untuk layanan yang sudah ada, klik layanan yang ingin Anda konfigurasi, lalu klik Edit dan deploy untuk menampilkan opsi pemeriksaan kondisi.

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

  4. Dari menu Select health check type, pilih Liveness check.

  5. Dari menu Pilih jenis probe, pilih jenis probe yang ingin Anda gunakan, misalnya, HTTP atau gRPC. Tindakan ini akan menampilkan formulir konfigurasi probe.

  6. Konfigurasi pemeriksaan bervariasi menurut jenis pemeriksaan. Konfigurasi setelan pemeriksaan:

    • Jika Anda menggunakan pemeriksaan HTTP:

      • Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan 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 layanan HTTP lainnya yang diekspos secara eksternal.

      • Gunakan kolom Path untuk menentukan jalur relatif ke endpoint, misalnya, /.

      • Centang kotak HTTP Headers untuk menentukan header kustom opsional. Tentukan nama header di kolom Nama dan nilai header di kolom Nilai. Klik Add HTTP header untuk menentukan lebih banyak header.

    • Jika Anda menggunakan pemeriksaan gRPC:

    • Untuk Port, tentukan port container yang digunakan untuk layanan Anda.

    • Untuk Penundaan awal, tentukan 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.

    • Untuk Period, tentukan periode (dalam detik) untuk melakukan pemeriksaan. Misalnya, 2 melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 3600 detik. Nilai default-nya adalah 10 detik.

    • Untuk Batas kegagalan, tentukan jumlah percobaan ulang pemeriksaan 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 3600. Nilai defaultnya adalah 1.

  7. Klik Tambahkan untuk menambahkan nilai minimum baru.

  8. Klik Buat atau Deploy.

gcloud

Keaktifan HTTP

Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan 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 layanan HTTP lainnya yang diekspos secara eksternal.

Jalankan perintah berikut:

  gcloud run deploy SERVICE \
      --image=IMAGE_URL \
      --liveness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Ganti kode berikut:

  • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • PATH: jalur relatif ke endpoint HTTP, misalnya, /health.
  • Opsional. CONTAINER_PORT: ditetapkan ke port container yang digunakan untuk layanan Anda.
  • Opsional. 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.
  • Opsional. THRESHOLD: 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, 2 melakukan 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 run deploy SERVICE \
      --image=IMAGE_URL \
      --liveness-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Ganti kode berikut:

  • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Opsional. GRPC_SERVICE: Jika disetel, nilai ini digunakan di kolom layanan grpc.health.v1.HealthCheckRequest saat rpc grpc.health.v1.Health.Check dipanggil.
  • Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda.
  • Opsional. 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.
  • Opsional. THRESHOLD: 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, 2 melakukan 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 layanan 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 layanan HTTP lainnya yang diekspos secara eksternal.

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurasikan atribut livenessProbe seperti yang ditunjukkan berikut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
        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:

    • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • PATH: jalur relatif ke endpoint HTTP, misalnya, /health.
    • Opsional. CONTAINER_PORT: ditetapkan ke port container yang digunakan untuk layanan Anda.
    • Opsional. 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.
    • Opsional. THRESHOLD: frekuensi untuk mencoba kembali pemeriksaan sebelum mematikan container. Nilai defaultnya adalah 3.
    • Opsional: httpHeaders dapat 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, 2 melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 3600 detik. Nilai default-nya adalah 10 detik.
  3. Buat atau perbarui layanan menggunakan perintah berikut:
    gcloud run services replace service.yaml

Keaktifan gRPC

Pastikan image container Anda menerapkan protokol health check gRPC.

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurasikan atribut livenessProbe seperti yang ditunjukkan berikut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            livenessProbe:
              grpc:
                port: CONTAINER_PORT
                service: GRPC_SERVICE
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD

    Ganti kode berikut:

    • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Opsional. GRPC_SERVICE: Jika disetel, nilai ini digunakan di kolom layanan grpc.health.v1.HealthCheckRequest saat rpc grpc.health.v1.Health.Check dipanggil.
    • Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda.
    • Opsional. 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.
    • Opsional. THRESHOLD: 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, 2 melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 3600 detik. Nilai default-nya adalah 10 detik.

  3. Buat atau perbarui layanan menggunakan perintah berikut:
    gcloud run services replace service.yaml

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Keaktifan HTTP

Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan 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 layanan HTTP lainnya yang diekspos secara eksternal.

Konfigurasikan layanan Cloud Run dengan atribut liveness_probe seperti yang ditunjukkan:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      liveness_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        http_get {
          path = "/"
          # Custom headers to set in the request
          # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#http_headers
          http_headers {
            name  = "Access-Control-Allow-Origin"
            value = "*"
          }
        }
      }
    }
  }
}

Keaktifan gRPC

Pastikan image container Anda menerapkan protokol health check gRPC.

Konfigurasikan layanan Cloud Run dengan atribut liveness_probe seperti yang ditunjukkan:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      # Note: Change to the name of your image
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      liveness_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        # Note: Change to the name of your pre-existing grpc health status service
        grpc {
          service = "grpc.health.v1.Health"
        }
      }
    }
  }
}

Persyaratan dan perilaku pemeriksaan keaktifan

Jenis Probe Persyaratan Perilaku
Keaktifan HTTP Buat endpoint health check HTTP
Gunakan HTTP/1
Pemeriksaan keaktifan hanya dimulai setelah pemeriksaan startup berhasil. Setelah konfigurasi pemeriksaan, dan semua pemeriksaan startup berhasil, Cloud Run akan membuat permintaan HTTP GET 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 Pemeriksaan Kesehatan gRPC di layanan 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 layanan.

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

Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.

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.

  • Cloud Run mungkin mengirim permintaan ke instance yang baru dimulai sebelum pemeriksaan kesiapan selesai untuk pertama kalinya.

  • Jika sebelumnya Anda mengonfigurasi pemeriksaan kesiapan untuk layanan Cloud Run menggunakan Cloud Run Admin API v1 sebelum November 2025, pemeriksaan kesiapan tidak akan berlaku meskipun setelah Anda men-deploy konfigurasi baru untuk layanan tersebut. Hal ini terjadi karena layanan mempertahankan konfigurasi yang lebih lama. Layanan yang Anda buat setelah November 2025, atau layanan yang tidak pernah menggunakan pemeriksaan kesiapan, tidak terpengaruh. Untuk mengaktifkan pemeriksaan kesiapan yang didukung pada layanan yang terpengaruh, lakukan hal berikut:

    1. Deploy revisi baru yang menghapus definisi pemeriksaan kesiapan yang lebih lama.

    2. Deploy revisi baru lainnya yang menambahkan definisi pemeriksaan kesiapan yang relevan.

    Langkah-langkah ini menghapus konfigurasi lama dan mengaktifkan fungsi pemeriksaan kesiapan.

Anda dapat mengonfigurasi pemeriksaan kesiapan menggunakan konsol Google Cloud , Google Cloud CLI atau YAML:

Konsol

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

    Buka Cloud Run

  2. Untuk layanan baru, luaskan Container(s), Volumes, Networking, Security untuk menampilkan opsi pemeriksaan kondisi. Untuk layanan yang sudah ada, klik layanan yang ingin Anda konfigurasi, lalu klik Edit dan deploy untuk menampilkan opsi pemeriksaan kondisi.

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

  4. Dari menu Select health check type, pilih Readiness check.

  5. Dari menu Pilih jenis probe, pilih jenis probe yang ingin Anda gunakan, misalnya, HTTP atau gRPC. Tindakan ini akan menampilkan formulir konfigurasi probe.

  6. Konfigurasi pemeriksaan bervariasi menurut jenis pemeriksaan. Konfigurasi setelan pemeriksaan:

    • Jika Anda menggunakan pemeriksaan HTTP:

      • Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan 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 layanan HTTP lainnya yang diekspos secara eksternal.

      • Gunakan kolom Path untuk menentukan jalur relatif ke endpoint, misalnya, /are_you_ready. Jalur default-nya adalah /.

    • Jika Anda menggunakan pemeriksaan gRPC:

    • Untuk Port, tentukan port container untuk layanan Anda. Port default adalah port ingress utama.

    • Untuk Period, tentukan periode (dalam detik) untuk melakukan pemeriksaan. Misalnya, 2 melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 hingga 300. Nilai default-nya adalah 10 detik.

    • Untuk Batas keberhasilan, tentukan keberhasilan berturut-turut minimum agar pemeriksaan dianggap berhasil setelah gagal. Defaultnya adalah 2.

    • Untuk Batas kegagalan, tentukan jumlah percobaan ulang pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. 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 300. Nilai defaultnya adalah 1.

  7. Klik Tambahkan untuk menambahkan nilai minimum baru.

  8. Klik Buat atau Deploy.

gcloud

Kesiapan HTTP

Tambahkan endpoint HTTP/1 (default Cloud Run, bukan HTTP/2) dalam kode layanan 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 layanan HTTP lainnya yang diekspos secara eksternal.

Jalankan perintah berikut:

gcloud beta run deploy SERVICE \
    --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:

  • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Opsional. PATH: jalur relatif ke endpoint HTTP, misalnya, /are_you_ready. Jalur default-nya adalah /.
  • Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda. Port default adalah port ingress utama.
  • Opsional. SUCCESS_THRESHOLD: keberhasilan berurutan minimum agar pemeriksaan dianggap berhasil setelah kegagalan. Defaultnya adalah 2.
  • Opsional. FAILURE_THRESHOLD: jumlah percobaan ulang pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. 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 300. Nilai defaultnya adalah 1.
  • Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan. Misalnya, 2 melakukan 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 deploy SERVICE \
    --image=IMAGE_URL \
    --readiness-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Ganti kode berikut:

  • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda. Port default adalah port masuk utama.
  • Opsional. GRPC_SERVICE: Jika disetel, nilai ini digunakan di kolom layanan grpc.health.v1.HealthCheckRequest saat rpc grpc.health.v1.Health.Check dipanggil.
  • Opsional. SUCCESS_THRESHOLD: keberhasilan berurutan minimum agar pemeriksaan dianggap berhasil setelah kegagalan. Defaultnya adalah 2.
  • Opsional. FAILURE_THRESHOLD: jumlah percobaan ulang pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. 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 300. Nilai defaultnya adalah 1.
  • Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan. Misalnya, 2 melakukan 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 layanan 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 layanan HTTP lainnya yang diekspos secara eksternal.

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurasikan atribut readinessProbe seperti yang ditunjukkan berikut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      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:

    • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Opsional. PATH: jalur relatif ke endpoint HTTP, misalnya, /are_you_ready. Jalur default-nya adalah /.
    • Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda. Port default adalah port ingress utama.
    • Opsional. SUCCESS_THRESHOLD: keberhasilan berurutan minimum agar pemeriksaan dianggap berhasil setelah kegagalan. Defaultnya adalah 2.
    • Opsional. FAILURE_THRESHOLD: jumlah percobaan ulang pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. 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 300. Nilai defaultnya adalah 1.
    • Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan. Misalnya, 2 melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 hingga 300. Nilai default-nya adalah 10 detik.

  3. Buat atau perbarui layanan menggunakan perintah berikut:
    gcloud run services replace service.yaml

Kesiapan gRPC

Pastikan image container Anda menerapkan protokol health check gRPC.

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurasikan atribut readinessProbe seperti yang ditunjukkan berikut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            readinessProbe:
              grpc:
                port: CONTAINER_PORT
                service: GRPC_SERVICE
              successThreshold: SUCCESS_THRESHOLD
              failureThreshold: FAILURE_THRESHOLD
              timeoutSeconds: TIMEOUT
              periodSeconds: PERIOD

    Ganti kode berikut:

    • SERVICE: nama layanan 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 bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Opsional. CONTAINER_PORT: port container yang digunakan untuk layanan Anda. Port default adalah port masuk utama.
    • Opsional. GRPC_SERVICE: Jika disetel, nilai ini digunakan di kolom layanan grpc.health.v1.HealthCheckRequest saat rpc grpc.health.v1.Health.Check dipanggil.
    • Opsional. SUCCESS_THRESHOLD: keberhasilan berurutan minimum agar pemeriksaan dianggap berhasil setelah kegagalan. Defaultnya adalah 2.
    • Opsional. FAILURE_THRESHOLD: jumlah percobaan ulang pemeriksaan sebelum melaporkan kegagalan, yang menyebabkan instance berhenti menerima traffic. 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 300. Nilai defaultnya adalah 1.
    • Opsional. PERIOD: periode (dalam detik) untuk melakukan pemeriksaan. Misalnya, 2 melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 hingga 300. Nilai default-nya adalah 10 detik.

  3. Buat atau perbarui layanan menggunakan perintah berikut:
    gcloud run services replace service.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