搜索

7.7. 使用 HTTP2 和 gRPC

download PDF

OpenShift Serverless 只支持不安全或边缘终端路由。不安全或边缘终端路由不支持 OpenShift Container Platform 中的 HTTP2。这些路由也不支持 gRPC,因为 gRPC 由 HTTP2 传输。如果您在应用程序中使用这些协议,则必须使用入口(ingress)网关直接调用应用程序。要做到这一点,您必须找到 ingress 网关的公共地址以及应用程序的特定主机。

7.7.1. 使用 HTTP2 和 gRPC 与无服务器应用程序交互

重要

此方法适用于 OpenShift Container Platform 4.10 及更新的版本。有关旧版本,请参阅以下部分。

先决条件

  • 在集群上安装 OpenShift Serverless Operator 和 Knative Serving。
  • 安装 OpenShift CLI (oc) 。
  • 创建 Knative 服务。
  • 升级 OpenShift Container Platform 4.10 或更高版本。
  • 在 OpenShift Ingress 控制器中启用 HTTP/2。

流程

  1. serverless.openshift.io/default-enable-http2=true 注解添加到 KnativeServing 自定义资源中:

    $ oc annotate knativeserving <your_knative_CR> -n knative-serving serverless.openshift.io/default-enable-http2=true
  2. 添加注解后,您可以验证 Kourier 服务的 appProtocol 值是否为 h2c

    $ oc get svc -n knative-serving-ingress kourier -o jsonpath="{.spec.ports[0].appProtocol}"

    输出示例

    h2c

  3. 现在,您可以对外部流量使用 HTTP/2 协议的 gRPC 框架,例如:

    import "google.golang.org/grpc"
    
    grpc.Dial(
       YOUR_URL, 1
       grpc.WithTransportCredentials(insecure.NewCredentials())), 2
    )
    1
    您的 ksvc URL。
    2
    您的证书。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.