您可以為新舊 Cloud Run 工作人員集區設定 HTTP、TCP 和 gRPC 啟動探查,以及 HTTP 和 gRPC 存活探查。設定方式會因探針類型而異。
用途
您可以設定兩種類型的健康狀態檢查探測器:
有效性探測會判斷是否要重新啟動容器。
- 如果發生錯誤,重新啟動容器可提高工作站集區的可用性。
- 執行中的探測器會重新啟動無法以任何其他方式復原的個別執行個體。主要用途是處理無法復原的執行個體故障,例如偵測工作者集區正在執行,但無法繼續運作的死結。您可以使用自訂機構政策,為每個容器設定存活探查。
啟動探測會判斷容器是否已啟動。
- 設定啟動探測時,系統會停用健康狀態檢查,直到啟動探測判斷容器已啟動為止,以免干擾工作站集區啟動。
- 如果您對啟動緩慢的容器使用有效性檢查,啟動探測就特別實用,因為這樣可避免容器在啟動並執行前過早關閉。
請注意,如果工作站集區發生重複啟動或健康狀態探測失敗的情況,Cloud Run 會限制執行個體重新啟動次數,防止不受控的當機迴圈。
CPU 分配方式
- 探測器執行時,系統一律會分配 CPU。
- 所有探針都會根據 CPU 和記憶體用量計費。
探測需求和行為
探針類型 | 需求條件 | 行為 |
---|---|---|
TCP 啟動 | 無 | 如果指定,Cloud Run 會建立 TCP 連線,在指定通訊埠開啟 TCP Socket。如果 Cloud Run 無法建立連線,表示失敗。 如果啟動探測在指定時間內未成功,Cloud Run 會關閉容器。時間上限為 240 秒,計算方式為 failureThreshold * periodSeconds ,您可以在設定工作站集區的啟動探查時設定這項值。 |
HTTP 啟動 | 建立 HTTP 健康狀態檢查端點 使用 HTTP/1 |
設定探測器後,Cloud Run 會對工作站集區健康狀態檢查端點 (例如 /ready ) 發出 HTTP GET 要求。介於 200 和 400 之間的任何回應都表示成功,其他則表示失敗。如果啟動探測器未在指定時間 ( failureThreshold * periodSeconds ) 內成功,且時間不得超過 240 秒,Cloud Run 就會關閉容器。如果 HTTP 啟動探測器在指定時間內成功,且您已設定 HTTP 執行中探測器,Cloud Run 就會啟動 HTTP 執行中探測器。 |
HTTP 存活度 | 建立 HTTP 健康狀態檢查端點 使用 HTTP/1 |
只有在啟動探測作業成功後,系統才會啟動即時性探測作業。探查設定完成後,如果啟動探查成功,Cloud Run 會向健康狀態檢查端點發出 HTTP GET 要求 (例如 /health )。介於 200 和 400 之間的回應表示成功,其他回應則表示失敗。如果存活探查在指定時間 ( failureThreshold * periodSeconds ) 內未成功,Cloud Run 會使用 SIGKILL 信號關閉容器。容器仍在處理的任何剩餘要求,都會以 HTTP 狀態碼 503 終止。Cloud Run 關閉容器後,Cloud Run 自動調整功能會啟動新的容器執行個體。 |
啟動 gRPC | 在 Cloud Run 工作站集區中實作 gRPC 健康狀態檢查通訊協定 | 如果啟動探測作業在指定時間 (failureThreshold * periodSeconds ) 內未成功 (不得超過 240 秒),Cloud Run 就會關閉容器。 |
gRPC 存活度 | 在 Cloud Run 工作站集區中實作 gRPC 健康狀態檢查通訊協定 | 如果設定 gRPC 啟動探測,系統只會在啟動探測成功後啟動存活探測。 設定存活探測後,只要啟動探測成功,Cloud Run 就會向工作站集區發出健康狀態檢查要求。 如果存活探測在指定時間 ( failureThreshold * periodSeconds ) 內未成功,Cloud Run 會使用 SIGKILL 信號關閉容器。Cloud Run 關閉容器後,Cloud Run 自動調整功能會啟動新的容器執行個體。 |
設定探測
變更任何設定都會建立新的修訂版本。除非您明確做出更新,變更這項設定,否則後續的修訂版本也會自動取得這個設定。
您可以使用 Cloud Run REST API 設定 HTTP、TCP 和 gRPC 探查:
REST API
重要事項:如果您要為 HTTP 探測作業設定 Cloud Run 工作人員集區,也必須在工作人員集區程式碼中新增 HTTP 健康狀態檢查端點,以回應探測作業。如要設定 gRPC 探測,您也必須在 Cloud Run 工作站集區中實作 gRPC 健康狀態檢查通訊協定。
建立 HTTP 健康狀態檢查端點
如果為 HTTP 啟動探測或存活探測設定 Cloud Run 工作站集區,您需要在工作站集區程式碼中新增端點,以回應探測。端點可以有任何名稱,例如 /startup
或 /ready
,但名稱必須與探查設定中為 path
指定的值相符。舉例來說,如果您為 HTTP 啟動探測器指定 /ready
,請在探測器設定中指定 path
,如下所示:
startupProbe: httpGet: path: /ready
HTTP 健康狀態檢查端點可從外部存取,並遵循與其他對外公開 HTTP 端點相同的原則。