You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在gcloud beta run deploy中指定Cloud Run多容器的启动探针?

解决Cloud Run多容器依赖部署失败的问题

问题原因

Cloud Run的容器依赖(depends-on)机制要求被依赖的容器必须配置启动探针,用来确认该容器完全启动就绪后,才会启动依赖它的容器。你的后端容器未配置启动探针,因此触发了报错。

解决方案

由于gcloud beta run deploy的单容器参数无法直接给多容器配置探针,你可以通过以下两种方式解决:

方式一:用--set-container参数给后端添加启动探针

在Cloud Build的部署命令中,新增针对后端容器的配置,用--set-container指定启动探针。比如后端用HTTP探针检查/health路径的示例:

args:
  - beta
  - run
  - deploy
  - $_SERVICE_NAME
  # 配置前端容器
  - >-
    --container=frontend
  - >-
    --image=$_AR_HOSTNAME/$PROJECT_ID/cloud-run-source-deploy/$REPO_NAME/$_SERVICE_NAME-frontend:$COMMIT_SHA
  - --port=3000
  - --depends-on=backend
  # 配置后端容器及启动探针
  - >-
    --set-container=backend,image=$_AR_HOSTNAME/$PROJECT_ID/cloud-run-source-deploy/$REPO_NAME/$_SERVICE_NAME-backend:$COMMIT_SHA
  - >-
    --set-container=backend,startup-probe=http-get,path=/health,port=8080
  - >-
    --set-container=backend,startup-probe-failure-threshold=3
  - >-
    --set-container=backend,startup-probe-period-seconds=5

如果后端用TCP探针(比如监听端口8080),把探针部分改成:

- >-
  --set-container=backend,startup-probe=tcp-socket,port=8080

方式二:使用服务配置文件部署(更易维护)

创建一个service.yaml配置文件,定义多容器、启动探针和依赖关系:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: $_SERVICE_NAME
spec:
  template:
    spec:
      containers:
      - name: frontend
        image: $_AR_HOSTNAME/$PROJECT_ID/cloud-run-source-deploy/$REPO_NAME/$_SERVICE_NAME-frontend:$COMMIT_SHA
        ports:
        - containerPort: 3000
        dependsOn:
        - backend
      - name: backend
        image: $_AR_HOSTNAME/$PROJECT_ID/cloud-run-source-deploy/$REPO_NAME/$_SERVICE_NAME-backend:$COMMIT_SHA
        startupProbe:
          httpGet:
            path: /health
            port: 8080
          failureThreshold: 3
          periodSeconds: 5

然后在Cloud Build的部署步骤里,改用配置文件部署:

args:
  - beta
  - run
  - deploy
  - $_SERVICE_NAME
  - --service-config=service.yaml

注意事项

  • 启动探针的配置要匹配后端服务实际的健康检查路径/端口,确保探针能正确检测到后端启动完成。
  • 使用--set-container参数时,每个容器的配置需要重复指定容器名(比如backend),多个配置项可分开写或用逗号合并。

内容的提问来源于stack exchange,提问作者GRS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:56:10