為工作站集區設定容器健康狀態檢查

您可以為新舊 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 要求。介於 200400 之間的任何回應都表示成功,其他則表示失敗。

如果啟動探測器未在指定時間 (failureThreshold * periodSeconds) 內成功,且時間不得超過 240 秒,Cloud Run 就會關閉容器。

如果 HTTP 啟動探測器在指定時間內成功,且您已設定 HTTP 執行中探測器,Cloud Run 就會啟動 HTTP 執行中探測器。
HTTP 存活度 建立 HTTP 健康狀態檢查端點
使用 HTTP/1
只有在啟動探測作業成功後,系統才會啟動即時性探測作業。探查設定完成後,如果啟動探查成功,Cloud Run 會對健康狀態檢查端點發出 HTTP GET 要求 (例如 /health)。介於 200400 之間的回應表示成功,其他則表示失敗。

如果存活探查在指定時間 (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 自動調整功能會啟動新的容器執行個體。

設定探測

變更任何設定都會建立新的修訂版本。除非您明確做出更新,變更這項設定,否則後續的修訂版本也會自動取得這個設定。

您可以使用 Google Cloud 控制台或 Cloud Run REST API 設定 HTTP、TCP 和 gRPC 探查:

控制台

  1. 前往 Google Cloud 控制台的 Cloud Run:

    前往 Cloud Run

  2. 從選單中選取「工作站集區」

    • 如要設定新的工作站集區,請按一下「Deploy container」(部署容器)
    • 如要設定現有的 worker 集區,請選取該集區,然後按一下「Edit and deploy new revision」(編輯並部署新的修訂版本)
  3. 如要設定新的工作站集區,請填寫初始工作站集區頁面,然後按一下「容器、磁碟區、網路與安全性」,展開工作站集區設定頁面。

  4. 在「Container(s)」(容器) 部分中,前往「Health checks」(健康狀態檢查),然後按一下「Add health check」(新增健康狀態檢查),開啟「Add health check」(新增健康狀態檢查)設定面板。

  5. 在「Select health check type」(選取健康狀態檢查類型) 選單中,選取要新增的健康狀態檢查類型。

  6. 在「選取探測類型」選單中,選取要使用的探測類型,例如 HTTP 或 gRPC。系統會顯示探針設定表單。

  7. 設定探針設定,這會因探針類型而異:

    • 如果您使用 HTTP 探測:

      • 使用「路徑」欄位指定端點的相對路徑,例如 /

      • 選取「HTTP 標頭」核取方塊,指定選用的自訂標頭。 在「名稱」欄位中指定標頭名稱,並在「值」欄位中指定標頭值。按一下「新增 HTTP 標頭」,指定更多標頭。

    • 如果您使用 gRPC 探針,請確保容器映像檔實作 gRPC 健康狀態檢查通訊協定。詳情請參閱 GRPC 健康狀態檢查通訊協定

    • 針對 HTTP 和 gRPC 探測類型,請指定下列項目:

      • 「初始延遲」:指定容器啟動後,要等待多少秒才執行第一次探測。請指定介於 0 秒到 240 秒之間的值。預設值為 0 秒。

      • 在「Period」(週期) 欄位中,指定執行探查的週期 (以秒為單位)。舉例來說,指定 2 可讓系統每 2 秒執行一次探查。指定介於 1 秒到 240 秒之間的值。預設值為 10 秒。

      • 「失敗門檻」:指定關閉容器前重新嘗試探測的次數。預設值為 3。

      • 「Timeout」(逾時):指定探測作業逾時前的等待秒數。請指定介於 1 到 240 和 periodSeconds 之間較小的值。預設值是 1。

  8. 按一下「新增」即可新增門檻。

  9. 按一下 [Create] (建立) 或 [Deploy] (部署)

REST API

重要事項:如果您要為 HTTP 探測作業設定 Cloud Run 工作人員集區,也必須在工作人員集區程式碼中新增 HTTP 健康狀態檢查端點,以回應探測作業。如要設定 gRPC 探測,您也必須在 Cloud Run 工作站集區中實作 gRPC 健康狀態檢查通訊協定

HTTP 啟動

使用 REST API 設定這項功能。

HTTP 存活度

使用 REST API 設定這項功能。

啟動 gRPC

使用 REST API 設定這項功能。

gRPC 存活度

使用 REST API 設定這項功能。

建立 HTTP 健康狀態檢查端點

如果為 HTTP 啟動探測或存活探測設定 Cloud Run 工作站集區,您需要在工作站集區程式碼中新增端點,以回應探測。端點可以有任何名稱,例如 /startup/ready,但名稱必須與探查設定中為 path 指定的值相符。舉例來說,如果您為 HTTP 啟動探測器指定 /ready,請在探測器設定中指定 path,如下所示:

startupProbe:
  httpGet:
    path: /ready

HTTP 健康狀態檢查端點可從外部存取,並遵循與其他對外公開的 HTTP 端點相同的原則。