【问题标题】:Cloud Run - Configure HTTPS and HTTP2Cloud Run - 配置 HTTPS 和 HTTP2
【发布时间】:2021-08-17 08:04:00
【问题描述】:

我使用 gRPC 和 HTTP2 设置了一个 Cloud Run 实例。它运作良好。但是,我想在外部打开一个新端口并通过 HTTPS 将该流量路由到 gRPC。

这是容器的当前 YAML:

      - image: asia.gcr.io/assets-320007/server5c2b87a8444cb42e566e130a907015df7dd841b4
        ports:
        - name: h2c
          containerPort: 5000
        resources:
          limits:
            cpu: 1000m
            memory: 512Mi

我无法添加新端口,因为如果这样做,我会得到:

spec.template.spec.containers[0].ports 应该包含 0 或 1 个端口(字段:spec.template.spec.containers[0].ports)

此外,YAML 没有指定转发端口。这似乎只是假设您只会设置一个端口,该端口会自动路由到 Docker 容器上的一个开放端口。这是真的吗?

注意:如果 YAML 附带参考文档或架构,那就太好了。这样我们就可以知道所有可能的排列可能是什么。

【问题讨论】:

    标签: docker google-cloud-platform yaml http2 google-cloud-run


    【解决方案1】:

    是的,您只能为 Cloud Run 服务公开一个端口。

    我也觉得这是一个奇怪的限制。

    我正在部署使用 gRPC 并公开 Prometheus 指标的服务,并且能够在单个端口中多路复用 HTTP/2 和 HTTP/1 服务,但它需要额外的工作并且与概念上的底层 Kubernetes 不一致。

    GCP 的一个出色功能是全面且最新的文档。这是 Cloud Run Service

    注意使用 [APIs Explorer] (https://developers.google.com/apis-explorer) 找到,然后找到 Cloud Run Admin API

    这些 knative 类型与类似的 Kubernetes 类型之间存在一些差异。我使用的一种方法是使用例如部署已知良好的服务。 gcloud 然后验证服务生成的 YAML。

    例如......我的头顶......容器端口不能有任意名称,但必须是......http1(请参阅link)。

    【讨论】:

      猜你喜欢
      • 2020-04-26
      • 2021-09-14
      • 2021-07-30
      • 2019-10-27
      • 2021-01-02
      • 1970-01-01
      • 2017-08-30
      • 2021-11-09
      • 2023-04-06
      相关资源
      最近更新 更多