Cloud Run配置HTTPS/HTTP2时新增外部gRPC端口相关问题咨询
问题解答
端口配置规则说明
你提到的平台仅支持配置1个端口的规则属实,这是Cloud Run当前的固定约束:
- 每个Cloud Run服务的容器配置中,
ports字段仅允许填写0个或1个端口定义,多端口配置会直接触发你收到的报错。 - 配置
containerPort后,平台会自动将所有外部入站流量(包括HTTPS、HTTP2、gRPC协议流量)转发到容器的该端口,无需额外配置转发规则。
你当前使用的配置示例已经正确指定了容器监听端口为5000:
- image: asia.gcr.io/assets-320007/server5c2b87a8444cb42e566e130a907015df7dd841b4 ports: - name: h2c containerPort: 5000 resources: limits: cpu: 1000m memory: 512Mi
你收到的报错信息也明确了该约束:
spec.template.spec.containers[0].ports should contain 0 or 1 port (field: spec.template.spec.containers[0].ports)
新增gRPC服务的实现方案
你需要新增端口承载gRPC服务的需求可以通过以下两种方式实现:
- 端口复用:gRPC支持与普通HTTPS服务共享同一个端口,你可以调整gRPC服务的监听端口为当前已配置的5000端口,通过请求路径或协议协商区分不同服务的流量,无需新增端口。
- 独立部署:如果两个服务无法共享端口,你可以单独部署一个新的Cloud Run实例承载该gRPC服务,为新实例配置对应的监听端口即可。
YAML配置规范说明
Cloud Run的YAML配置遵循Knative Serving标准规范,所有可配置项的字段规则、取值约束都和该规范完全对齐,你可以参考对应Knative Serving的Schema定义明确所有支持的配置项。
内容的提问来源于stack exchange,提问作者Christian Findlay
相关产品推荐
相关产品推荐

