您可以为新的和现有的 Cloud Run 服务配置 HTTP、TCP 和 gRPC 启动健康检查探测以及 HTTP 和 gRPC 活跃探测。您可以使用 YAML 文件为 Cloud Run 服务配置启动或活跃探测。具体配置会因探测类型而异。
您可以使用活跃检查探测来确定何时重启容器,例如,捕获服务正在运行但无进展的死锁。在这种情况下,重启容器可以在出现错误时提高服务可用性。
您可以使用启动探测来确定容器是否已启动并准备好接受流量。
配置启动探测时,系统将停用活跃检查,直到启动探测确定容器已启动,以防止干扰服务启动。
如果您对慢启动容器使用活跃检查,则启动探测特别有用,因为它可以防止在容器启动和运行之前过早关停。
请注意,当服务重复发生启动或活跃性探测失败时,Cloud Run 会限制实例重启,以防止不受控制的崩溃循环。
结算和 CPU 分配
- 系统会为每个探测分配 CPU。
- 所有探测都按 CPU 和内存用量计费,但不需要支付基于请求的费用。
任何配置更改都会导致新修订版本的创建。后续修订版本也将自动采用此配置设置,除非您进行了明确更新。
配置启动探测
您可以配置 HTTP、TCP 和 gRPC 探测。
配置 HTTP 启动探测
HTTP 没有默认的启动探测,但您可以为 Cloud Run 服务配置一个 HTTP 启动探测。请注意,若要使用 HTTP 健康检查探测,您需要在服务中创建相应的 HTTP 健康检查端点来响应探测。此外,您的服务必须使用 HTTP/1(Cloud Run 默认值),而不是 HTTP/2。
配置启动探测后,Cloud Run 会向服务健康检查端点发出 HTTP GET 请求(例如 /ready
)。介于 200
和 400
之间的任何响应都表示成功,其余响应值均表示失败。
如果启动探测在指定时间 (failureThreshold
* periodSeconds
)(不超过 240 秒)内未成功,则容器会关停。
如果 HTTP 启动探测在指定时间内成功,并且您已配置 HTTP 活跃探测,则 HTTP 活跃探测会启动。
您可以使用 Google Cloud 控制台为现有服务配置 HTTP 启动探测,也可以使用 YAML 为新的或现有的服务配置 HTTP 启动探测:
控制台
点击您要配置的服务。
点击 YAML 标签页。
点击修改并配置
startupProbe
属性,如下所示: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
替换
- 将 SERVICE 替换为您的 Cloud Run 服务的名称。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 如果您使用 Artifact Registry,则必须预先创建制品库 REPO_NAME。网址格式为REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- 将 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 秒。
点击保存并部署新的修订版本。
YAML
您可以使用 gcloud run services describe --format export
命令下载并查看现有服务配置,该命令会生成清理后的 YAML 格式的结果。然后按照后续说明修改字段,最后使用 gcloud run services replace
命令上传修改后的 YAML。请务必严格按照说明修改字段。
如需查看和下载配置,请运行以下命令:
gcloud run services describe SERVICE --format export > service.yaml
配置
startupProbe
属性,如下所示: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
替换
- 将 SERVICE 替换为您的 Cloud Run 服务的名称。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 如果您使用 Artifact Registry,则必须预先创建制品库 REPO_NAME。网址格式为REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- 将 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 services replace service.yaml
Terraform
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
使用 startup_probe
特性配置 Cloud Run 服务,如下所示:
创建 HTTP 健康检查端点
如果您为 Cloud Run 服务配置了 HTTP 启动探测或活跃探测,则需要在服务代码中添加端点以响应探测。端点可以指定为任何名称(例如 /startup
或 /ready
),但必须与您在探测配置中为 path
指定的值相匹配。例如,如果您为 HTTP 启动探测指定了 /ready
,则您应按如下所示在探测配置中指定 path
:
startupProbe: httpGet: path: /ready
HTTP 健康检查端点可从外部访问,并且遵循与外部公开的任何其他 HTTP 服务端点相同的原则。
配置 TCP 启动探测
如果您未自行配置启动探测,系统会自动为新的 Cloud Run 服务配置具备默认值的 TCP 启动探测。默认探测如下所示:
startupProbe: tcpSocket: port: CONTAINER_PORT timeoutSeconds: 240 periodSeconds: 240 failureThreshold: 1
其中 CONTAINER_PORT 设置为用于您的服务的容器端口。
您可以按照本部分中的说明更改这些默认值。
对于 TCP 启动探测,Cloud Run 会建立 TCP 连接,以便在指定端口上打开 TCP 套接字。如果 Cloud Run 无法建立连接,则表示探测失败。
如果启动探测在指定时间 (failureThreshold
* periodSeconds
)(不超过 240 秒)内未成功,则容器会关停。
您可以使用 Google Cloud 控制台为现有服务配置 TCP 启动探测,也可以使用 YAML 为新的或现有的服务配置 TCP 启动探测:
控制台
点击您要配置的服务。
点击 YAML 标签页。
点击修改并配置
startupProbe
属性,如下所示:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL startupProbe: failureThreshold: THRESHOLD initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT periodSeconds: PERIOD tcpSocket: port: CONTAINER_PORT
替换
- 将 SERVICE 替换为您的 Cloud Run 服务的名称。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 如果您使用 Artifact Registry,则必须预先创建制品库 REPO_NAME。网址格式为REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (可选)应将 CONTAINER_PORT 设置为用于您的服务的容器端口。
- (可选)将 DELAY 替换为容器启动后执行首次探测之前等待的时长(秒数)。指定一个介于 0 秒到 240 秒之间的值。默认值为 0 秒。
- (可选)将 TIMEOUT 替换为等待探测超时的时长(秒数)。此值不能超过为
periodSeconds
指定的值。指定 1 至 240 之间的值。默认值为 1。 - (可选)将 THRESHOLD 替换为将探测标记为未就绪之前重试探测的次数。默认值为 3。
- (可选)将 PERIOD 替换为要在其中执行探测的时间段(以秒为单位)。例如,
2
表示每 2 秒执行一次探测。指定一个介于 1 秒到 240 秒之间的值。默认值为 10 秒。
点击保存并部署新的修订版本。
YAML
您可以使用 gcloud run services describe --format export
命令下载并查看现有服务配置,该命令会生成清理后的 YAML 格式的结果。然后按照后续说明修改字段,最后使用 gcloud run services replace
命令上传修改后的 YAML。请务必严格按照说明修改字段。
如需查看和下载配置,请运行以下命令:
gcloud run services describe SERVICE --format export > service.yaml
配置
startupProbe
属性,如下所示: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
替换
- 将 SERVICE 替换为您的 Cloud Run 服务的名称。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 如果您使用 Artifact Registry,则必须预先创建制品库 REPO_NAME。网址格式为REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (可选)应将 CONTAINER_PORT 设置为用于您的服务的容器端口。
- 将 DELAY 替换为容器启动后执行首次探测之前等待的时长(秒数)。指定一个介于 0 秒到 240 秒之间的值。 默认值为 0 秒。
- (可选)将 TIMEOUT 替换为等待探测超时的时长(秒数)。此值不能超过为
periodSeconds
指定的值。指定 1 至 240 之间的值。默认值为 1。 - 将 THRESHOLD 替换为将探测标记为未就绪之前重试探测的次数。默认值为 3。
- 将 PERIOD 替换为要在其中执行探测的时间段(以秒为单位)。例如,
2
表示每 2 秒执行一次探测。指定一个介于 1 秒到 240 秒之间的值。默认值为 10 秒。
使用以下命令将服务替换为其新配置:
gcloud run services replace service.yaml
Terraform
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
使用 startup_probe
特性配置 Cloud Run 服务,如下所示:
配置 gRPC 启动探测
如需使用 gRPC 启动探测,您必须在 Cloud Run 服务中实现 gRPC 健康检查协议,然后相应地配置探测,如本部分所述。
您可以使用 Google Cloud 控制台为现有服务配置 gRPC 启动探测,也可以使用 YAML 为新的或现有的服务配置 gRPC 启动探测:
控制台
点击您要配置的服务。
点击 YAML 标签页。
点击修改并配置
startupProbe
属性,如下所示: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
替换
- 将 SERVICE 替换为您的 Cloud Run 服务的名称。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 如果您使用 Artifact Registry,则必须预先创建制品库 REPO_NAME。网址格式为REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (可选)应将 CONTAINER_PORT 设置为用于您的服务的容器端口。
- 将 GRPC_SERVICE 替换为接收健康检查的 gRPC 服务的名称。
- (可选)将 DELAY 替换为容器启动后执行首次探测之前等待的时长(秒数)。指定一个介于 0 秒到 240 秒之间的值。默认值为 0 秒。
- (可选)将 TIMEOUT 替换为等待探测超时的时长(秒数)。此值不能超过为
periodSeconds
指定的值。指定 1 至 240 之间的值。默认值为 1。 - (可选)将 THRESHOLD 替换为将探测标记为未就绪之前重试探测的次数。默认值为 3。
- (可选)将 PERIOD 替换为要在其中执行探测的时间段(以秒为单位)。例如,
2
表示每 2 秒执行一次探测。指定一个介于 1 秒到 240 秒之间的值。默认值为 10 秒。
点击保存并部署新的修订版本。
YAML
您可以使用 gcloud run services describe --format export
命令下载并查看现有服务配置,该命令会生成清理后的 YAML 格式的结果。然后按照后续说明修改字段,最后使用 gcloud run services replace
命令上传修改后的 YAML。请务必严格按照说明修改字段。
如需查看和下载配置,请运行以下命令:
gcloud run services describe SERVICE --format export > service.yaml
配置
startupProbe
属性,如下所示: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
替换
- 将 SERVICE 替换为您的 Cloud Run 服务的名称。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 如果您使用 Artifact Registry,则必须预先创建制品库 REPO_NAME。网址格式为REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- 将 GRPC_SERVICE 替换为接收健康检查的 gRPC 服务的名称。
- (可选)应将 CONTAINER_PORT 设置为用于您的服务的容器端口。
- (可选)将 DELAY 替换为容器启动后执行首次探测之前等待的时长(秒数)。指定一个介于 0 秒到 240 秒之间的值。默认值为 0 秒。
- (可选)将 TIMEOUT 替换为等待探测超时的时长(秒数)。此值不能超过为 periodSeconds 指定的值。指定 1 至 240 之间的值。默认值为 1。
- (可选)将 THRESHOLD 替换为将探测标记为未就绪之前重试探测的次数。默认值为 3。
- (可选)将 PERIOD 替换为要在其中执行探测的时间段(以秒为单位)。例如,
2
表示每 2 秒执行一次探测。指定一个介于 1 秒到 240 秒之间的值。默认值为 10 秒。
使用以下命令将服务替换为其新配置:
gcloud run services replace service.yaml
Terraform
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
您的服务必须实现 GRPC 健康检查。
使用 startup_probe
特性配置 Cloud Run 服务,如下所示:
配置活跃探测
您可以配置 HTTP 和 gRPC 活跃探测。
配置 HTTP 活跃探测
如果您配置了 HTTP 启动探测,则活跃探测仅在启动探测成功后启动。请注意,若要使用 HTTP 健康检查探测,您需要在服务中创建相应的 HTTP 健康检查端点来响应探测。此外,您的服务必须使用 HTTP/1(Cloud Run 默认值),而不是 HTTP/2。
配置活跃探测并且任何启动探测成功后,Cloud Run 会向服务健康检查端点发出 HTTP GET 请求(例如 /health
)。200
和 400
之间的任何响应都表示成功,其他响应则表示失败。
如果活跃探测在指定时间 (failureThreshold
* periodSeconds
) 内未成功,则容器会使用 SIGKILL
信号关停。容器仍在处理的所有剩余请求都会终止,并且 HTTP 状态代码为 503
。容器关停后,Cloud Run 自动扩缩功能会启动新的容器实例。
您可以使用 Google Cloud 控制台为现有服务配置 HTTP 活跃探测,也可以使用 YAML 为新的或现有的服务配置 HTTP 启动探测:
控制台
点击您要配置的服务。
点击 YAML 标签页。
点击修改并配置
livenessProbe
属性,如下所示: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
替换
- 将 SERVICE 替换为您的 Cloud Run 服务的名称。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 如果您使用 Artifact Registry,则必须预先创建制品库 REPO_NAME。网址格式为REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- 将 PATH 替换为 HTTP 端点的相对路径,例如
/ready
。 - (可选)应将 CONTAINER_PORT 设置为用于您的服务的容器端口。
- (可选)
httpHeaders
可用于使用 HEADER_NAME 和 HEADER_VALUE 字段提供多个或重复的自定义标头,如下所示。 - (可选)将 DELAY 替换为容器启动后执行首次探测之前等待的时长(秒数)。指定一个介于 0 秒到 240 秒之间的值。默认值为 0 秒。
- (可选)将 TIMEOUT 替换为等待探测超时的时长(秒数)。此值不能超过为
periodSeconds
指定的值。指定一个介于 1 到 3600 之间的值。默认值为 1。 - (可选)将 THRESHOLD 替换为将探测标记为未就绪之前重试探测的次数。默认值为 3。
- (可选)将 PERIOD 替换为要在其中执行探测的时间段(以秒为单位)。例如,
2
表示每 2 秒执行一次探测。指定一个介于 1 秒到 3600 秒之间的值。默认值为 10 秒。
点击保存并部署新的修订版本。
YAML
您可以使用 gcloud run services describe --format export
命令下载并查看现有服务配置,该命令会生成清理后的 YAML 格式的结果。然后按照后续说明修改字段,最后使用 gcloud run services replace
命令上传修改后的 YAML。请务必严格按照说明修改字段。
如需查看和下载配置,请运行以下命令:
gcloud run services describe SERVICE --format export > service.yaml
配置
livenessProbe
属性,如下所示: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
替换
- 将 SERVICE 替换为您的 Cloud Run 服务的名称。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 如果您使用 Artifact Registry,则必须预先创建制品库 REPO_NAME。网址格式为REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- 将 PATH 替换为 HTTP 端点的相对路径,例如
/ready
。 - (可选)应将 CONTAINER_PORT 设置为用于您的服务的容器端口。
- (可选)
httpHeaders
可用于使用 HEADER_NAME 和 HEADER_VALUE 字段提供多个或重复的自定义标头,如下所示。 - (可选)将 DELAY 替换为容器启动后执行首次探测之前等待的时长(秒数)。指定一个介于 0 秒到 240 秒之间的值。默认值为 0 秒。
- (可选)将 TIMEOUT 替换为等待探测超时的时长(秒数)。此值不能超过为
periodSeconds
指定的值。指定一个介于 1 到 3600 之间的值。默认值为 1。 - (可选)将 THRESHOLD 替换为将探测标记为未就绪之前重试探测的次数。默认值为 3。
- (可选)将 PERIOD 替换为要在其中执行探测的时间段(以秒为单位)。例如,
2
表示每 2 秒执行一次探测。指定一个介于 1 秒到 3600 秒之间的值。默认值为 10 秒。
使用以下命令将服务替换为其新配置:
gcloud run services replace service.yaml
Terraform
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
您的服务必须实现 GRPC 健康检查。
使用 liveness_probe
特性配置 Cloud Run 服务,如下所示:
配置 HTTP 探测后,您还必须创建健康检查端点以响应探测。
配置 gRPC 活跃探测
如果您配置了 gRPC 启动探测,则活动探测仅在启动探测成功后启动。请注意,使用 gRPC 健康检查探测需要在 Cloud Run 服务中实现 gRPC 健康检查协议。
配置活跃探测并且任何启动探测成功后,Cloud Run 会向服务发出健康检查请求。
如果活跃探测在指定时间 (failureThreshold
* periodSeconds
) 内未成功,则容器会使用 SIGKILL
信号关停。容器关停后,Cloud Run 自动扩缩功能会启动新的容器实例。
您可以使用 Google Cloud 控制台为现有服务配置 gRPC 活跃探测,也可以使用 YAML 为新的或现有的服务配置 gRPC 启动探测:
控制台
点击您要配置的服务。
点击 YAML 标签页。
点击修改并配置
livenessProbe
属性,如下所示: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
替换
- 将 SERVICE 替换为您的 Cloud Run 服务的名称。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 如果您使用 Artifact Registry,则必须预先创建制品库 REPO_NAME。网址格式为REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (可选)应将 CONTAINER_PORT 设置为用于您的服务的容器端口。
- 将 GRPC_SERVICE 替换为接收健康检查的 gRPC 服务的名称。
- (可选)将 DELAY 替换为容器启动后执行首次探测之前等待的时长(秒数)。指定一个介于 0 秒到 240 秒之间的值。默认值为 0 秒。
- (可选)将 TIMEOUT 替换为等待探测超时的时长(秒数)。此值不能超过为
periodSeconds
指定的值。指定一个介于 1 到 3600 之间的值。默认值为 1。 - (可选)将 THRESHOLD 替换为将探测标记为未就绪之前重试探测的次数。默认值为 3。
- (可选)将 PERIOD 替换为要在其中执行探测的时间段(以秒为单位)。例如,
2
表示每 2 秒执行一次探测。指定一个介于 1 秒到 3600 秒之间的值。默认值为 10 秒。
点击保存并部署新的修订版本。
YAML
您可以使用 gcloud run services describe --format export
命令下载并查看现有服务配置,该命令会生成清理后的 YAML 格式的结果。然后按照后续说明修改字段,最后使用 gcloud run services replace
命令上传修改后的 YAML。请务必严格按照说明修改字段。
如需查看和下载配置,请运行以下命令:
gcloud run services describe SERVICE --format export > service.yaml
配置
livenessProbe
属性,如下所示: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
替换
- 将 SERVICE 替换为您的 Cloud Run 服务的名称。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 如果您使用 Artifact Registry,则必须预先创建制品库 REPO_NAME。网址格式为REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (可选)应将 CONTAINER_PORT 设置为用于您的服务的容器端口。
- 将 GRPC_SERVICE 替换为接收健康检查的 gRPC 服务的名称。
- (可选)将 DELAY 替换为容器启动后执行首次探测之前等待的时长(秒数)。指定一个介于 0 秒到 240 秒之间的值。默认值为 0 秒。
- (可选)将 TIMEOUT 替换为等待探测超时的时长(秒数)。此值不能超过为
periodSeconds
指定的值。指定一个介于 1 到 3600 之间的值。默认值为 1。 - (可选)将 THRESHOLD 替换为将探测标记为未就绪之前重试探测的次数。默认值为 3。
- (可选)将 PERIOD 替换为要在其中执行探测的时间段(以秒为单位)。 例如,
2
表示每 2 秒执行一次探测。指定一个介于 1 秒到 3600 秒之间的值。默认值为 10 秒。
使用以下命令将服务替换为其新配置:
gcloud run services replace service.yaml
Terraform
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
使用 liveness_probe
特性配置 Cloud Run 服务,如下所示: