gpt4 book ai didi

google-cloud-platform - 配置 Cloud Run on Anthos 以转发 HTTP2

转载 作者:行者123 更新时间:2023-12-04 04:19:43 26 4
gpt4 key购买 nike

如何让 Cloud Run for Anthos 将传入的 HTTP2 请求作为 HTTP2 而不是 HTTP/1.1 转发到 Cloud Run 服务?

我将 GCP 与 Cloud Run for Anthos 结合使用来部署运行 GRPC 服务器的 Java 应用程序。 Cloud Run 应用公开。我还使用 SSL 证书配置了 Cloud Run for Anthos。当我尝试使用 GRPC 客户端调用我的服务时,客户端通过负载均衡器接受的 HTTP2 发送请求,但是当请求转发到我的 Cloud Run 服务(运行 GRPC 服务器的 Java 应用程序)时,它以 HTTP/1.1 并被 GRPC 服务器拒绝。我假设在 k8 负载均衡器和我的 k8 pod 之间的某个地方,请求被转发为 HTTP/1.1,但我不知道如何解决这个问题。

最佳答案

结合@whlee 的回答和他非常重要的后续评论,这正是我必须做的才能让它发挥作用。

您必须使用 gcloud cli 进行部署才能更改命名端口。 UI 不允许您配置端口名称。从服务 yaml 部署目前是测试版功能。要部署,请运行:gcloud beta run services replace/path/to/service.yaml

就我而言,我的服务最初是使用 GCP 云控制台 UI 部署的,因此这里是我运行以导出和替换的步骤。

  1. 将我现有的服务(名为 hermes-grpc)导出到 yaml 文件:
gcloud beta run services describe hermes-grpc --format yaml > hermes-grpc.yaml
  1. 编辑我的导出 yaml 并进行以下编辑:

替换:

        ports:
- containerPort: 6565

与:

        ports:
- name: h2c
containerPort: 6565

删除了以下几行:

          tcpSocket:
port: 0

从该部分删除了 name:

spec:
template:
metadata:
...
name:
  1. 最后,从编辑的 yaml 重新部署服务:
gcloud beta run services replace hermes-grpc.yaml

最后我编辑的服务 yaml 看起来像这样:

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
annotations:
client.knative.dev/user-image: interledger4j/hermes-server:latest
run.googleapis.com/client-name: cloud-console
creationTimestamp: '2020-01-09T00:02:29Z'
generation: 3
name: hermes-grpc
namespace: default
selfLink: /apis/serving.knative.dev/v1alpha1/namespaces/default/services/hermes-grpc
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/maxScale: '2'
autoscaling.knative.dev/minScale: '1'
run.googleapis.com/client-name: cloud-console
spec:
containerConcurrency: 80
containers:
image: interledger4j/hermes-server:latest
name: user-container
ports:
- name: h2c
containerPort: 6565
readinessProbe:
successThreshold: 1
resources:
limits:
cpu: 500m
memory: 384Mi
timeoutSeconds: 300
traffic:
- latestRevision: true
percent: 100

关于google-cloud-platform - 配置 Cloud Run on Anthos 以转发 HTTP2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59658500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com