本頁面說明如何為新的和現有 Cloud Run 工作設定 HTTP、TCP 和 gRPC 啟動探測。設定會因探針類型而異。
用途
您可以設定啟動健康狀態檢查探針。啟動探測可判斷容器是否已啟動,且是否已準備好執行工作。
當工作屢次無法啟動時,Cloud Run 會限制工作重新啟動次數,以免發生失控的無限迴圈。
探針規定和行為
| 探針類型 | 需求條件 | 行為 | 
|---|---|---|
| TCP 啟動 | 無 | 如果 Cloud Run 無法建立連線,表示發生錯誤。 如果啟動探測未在指定的時間間隔內成功,Cloud Run 就會關閉容器。這個時間間隔的計算方式為 failureThreshold*periodSeconds,且不得超過 240 秒。 | 
| HTTP 啟動 | 建立 HTTP 健康狀態檢查端點 使用 HTTP/1 | 設定探針後,Cloud Run 會向工作健康狀態檢查端點 (例如 /ready) 提出 HTTP GET 要求。200和400之間的任何回應都表示成功,其他則表示失敗。如果啟動探針未在指定時間 ( failureThreshold*periodSeconds) 內成功,則容器會關閉,此時間不得超過 240 秒 | 
| gRPC 啟動 | 在 Cloud Run 工作中實作 gRPC 健康狀態檢查通訊協定 | 如果啟動探測未在指定時間 ( failureThreshold*periodSeconds) 內 (不得超過 240 秒) 成功,容器就會關閉 | 
設定探測
使用 Google Cloud 主控台或 YAML 設定 HTTP、TCP 和 gRPC 探針:
控制台
重要事項:如果您要為 HTTP 探針設定 Cloud Run 工作,則必須在工作程式碼中新增 HTTP 健康狀態檢查端點,才能回應探針。如果您要設定 gRPC 探針,則必須在 Cloud Run 工作中實作 gRPC 健康狀態檢查通訊協定。
- 前往 Google Cloud 控制台的「Cloud Run」頁面。 
- 如要建立新工作,請從選單中選取「Jobs」,然後按一下「Deploy container」。如果是現有工作,請依序點選「工作」分頁標籤和所需工作,然後點選「查看及編輯工作設定」。 
- 展開「容器、磁碟區、網路與安全性」。 
- 在「容器」部分中,前往「健康狀態檢查」,然後按一下「新增健康狀態檢查」,開啟「新增健康狀態檢查」設定面板。 
- 在「選取健康狀態檢查類型」選單中,選取健康狀態檢查啟動類型。 
- 從「Select probe type」選單中,選取探測類型,例如 HTTP 或 gRPC。這會顯示探針設定表單。 
- 請注意,探針設定會因探針類型而異。設定探針設定: - 如果您使用 HTTP 探針:
- 針對「Port」,請指定工作容器用於偵聽探針的通訊埠。
- 針對「Initial delay」,請指定在容器啟動後,要等待幾秒才執行第一次探測。請指定介於 0 秒到 240 秒之間的值。預設值為 0 秒。
- 針對「Period」,請指定要執行探測的時間間隔 (以秒為單位)。例如 2,可讓系統每 2 秒執行一次探測作業。請指定介於 1 秒到 240 秒之間的值。預設值為 10 秒。
- 針對「Failure threshold」(失敗門檻),指定在關閉容器前,要重試探測的次數。預設值為 3。
- 針對「Timeout」(逾時時間),指定要等待多久時間才會讓探測作業逾時。此值不得超過 periodSeconds指定的值。請指定介於 1 到 240 的值。預設值是 1。
 
- 按一下「新增」,新增新的門檻 
YAML
重要事項:如果您要為 HTTP 探針設定 Cloud Run 工作,則必須在工作程式碼中新增端點,才能回應探針。如果您要設定 gRPC 探針,則必須在 Cloud Run 工作中實作 gRPC 健康狀態檢查通訊協定。
TCP 啟動
- 如果您要建立新工作,請略過這個步驟。如果您要更新現有工作,請下載其 YAML 設定: - gcloud run jobs describe JOB_NAME --format export > job.yaml 
- 請按照下方說明設定 - startupProbe屬性:- 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 - 替換下列變數: - JOB 替換為 Cloud Run 工作名稱。
- IMAGE_URL 與工作容器映像檔的網址,例如 us-docker.pkg.dev/cloudrun/container/job:latest。
- 選用:CONTAINER_PORT 搭配工作容器用於監聽探測的通訊埠。
- DELAY 是從容器啟動後到執行第一項探測作業之前,這段時間間隔的秒數。指定的值介於 0 秒至 240 秒之間。預設值為 0 秒。
- 選用:TIMEOUT 可設定探測逾時前等待的秒數。此值不得超過 periodSeconds指定的值。請指定介於 1 到 240 的值。預設值是 1。
- THRESHOLD 與關閉容器前重試探測的次數。預設值為 3。
- PERIOD 與執行探測的週期 (以秒為單位)。例如 2,可讓系統每 2 秒執行一次探測作業。指定的值介於 1 秒到 240 秒之間。預設值為 10 秒。
 
- 使用下列指令建立或更新工作: - gcloud run jobs replace job.yaml 
HTTP 啟動
- 如果您要建立新工作,請略過這個步驟。如果您要更新現有工作,請下載其 YAML 設定: - gcloud run jobs describe JOB_NAME --format export > job.yaml 
- 請按照下列說明設定 - startupProbe屬性:- 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 - 替換下列變數: - JOB 替換為 Cloud Run 工作名稱。
- IMAGE_URL 與工作容器映像檔的網址,例如 us-docker.pkg.dev/cloudrun/container/job:latest。
- PATH 與 HTTP 端點的相對路徑,例如 /ready。
- 選用:CONTAINER_PORT 搭配工作容器用於監聽探測作業的通訊埠。
- 選用:httpHeaders可用於使用 HEADER_NAME 和 HEADER_VALUE 欄位提供多個或重複的自訂標頭,如圖所示。
- 選用:DELAY 會在容器啟動後等待幾秒,然後才執行第一項探測作業。請指定介於 0 秒到 240 秒之間的值。預設值為 0 秒。
- 選用:TIMEOUT 會等待多少秒,直到探測逾時。此值不得超過 periodSeconds指定的值。請指定介於 1 到 240 的值。預設值是 1。
- 選用:THRESHOLD 會在關閉容器前重試探測的次數。預設值為 3。
- 選用:PERIOD 與執行探測的週期 (以秒為單位)。例如 2,可讓系統每 2 秒執行一次探測作業。請指定介於 1 秒到 240 秒之間的值。預設值為 10 秒。
 
- 使用下列指令建立或更新工作: - gcloud run jobs replace job.yaml 
gRPC 啟動
- 如果您要建立新工作,請略過這個步驟。如果您要更新現有工作,請下載其 YAML 設定: - gcloud run jobs describe JOB_NAME --format export > job.yaml 
- 請按照下列說明設定 - startupProbe屬性:- 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 - 替換下列變數: - JOB 替換為 Cloud Run 工作名稱。
- IMAGE_URL 與工作容器映像檔的網址,例如 us-docker.pkg.dev/cloudrun/container/job:latest。
- 選用:GRPC_SERVICE。如果已設定,則在呼叫 grpc.health.v1.Health.CheckRPC 時,會在grpc.health.v1.HealthCheckRequest的服務欄位中使用此值。
- 選用:CONTAINER_PORT 搭配工作容器用於監聽探測的通訊埠。
- 選用:DELAY 會在容器啟動後等待幾秒,然後執行第一次探測。請指定介於 0 秒到 240 秒之間的值。預設值為 0 秒。
- 選用:TIMEOUT 會等待指定秒數,直到探測作業逾時為止。這個值不得超過 periodSeconds 指定的值。請指定介於 1 到 240 之間的值。預設值是 1。
- 選用:THRESHOLD 可設定在關閉容器前,重試探測的次數。預設值為 3。
- 選用:PERIOD 與執行探測的週期 (以秒為單位)。例如 2,可讓系統每 2 秒執行一次探測作業。請指定介於 1 秒到 240 秒之間的值。預設值為 10 秒。
 
- 使用下列指令建立或更新工作: - gcloud run jobs replace job.yaml 
建立 HTTP 健康狀態檢查端點
如果您為 HTTP 啟動探測器設定 Cloud Run 工作,則必須在工作程式碼中新增端點,以便回應探測器。您可以為端點使用任何名稱,例如 /startup 或 /ready。名稱必須與您在探針設定中為 path 指定的值相符。舉例來說,如果您為 HTTP 啟動探測器指定 /ready,請在探測器設定中指定 path,如下所示:
startupProbe: httpGet: path: /ready