【问题标题】:How to enable http2/grpc on port 80 (i.e. without TLS) with nginx ingress?如何使用 nginx 入口在端口 80(即没有 TLS)上启用 http2/grpc?
【发布时间】:2021-07-29 10:47:39
【问题描述】:

根据ingress-nginx Github 上的这两个问题,似乎在没有 TLS 的情况下让 grpc/http2 在端口 80 上工作的唯一方法是使用自定义配置模板:

  1. ingress does not supporting http2 at port 80 without tls #6313
  2. Add new annotation to support listen 80 http2 #6736

不幸的是,我找不到任何关于如何设置自定义 nginx-ingress 配置的简单示例。以下是我尝试过的链接:

  1. Custom NGINX template
  2. Custom Templates

谁能帮助我了解如何让 grpc/http2 在端口 80 不使用 TLS 上使用 nginx-ingress 的确切步骤和配置?

【问题讨论】:

  • 在我看来,这比 GRPC over TLS 更复杂。大致的步骤是:1)在一个空的命名空间中启动一个单独的 nginx 控制器,以避免主控制器出现问题; 2)创建自定义模板,使用these作为参考; 3) 将它们放在configMap 中,例如this
  • 4) 像 example 一样将模板安装到控制器 pod 中
  • 谢谢@anemyte - 你是对的。这比它应该的更复杂!

标签: nginx kubernetes grpc http2 nginx-ingress


【解决方案1】:

这是为提高可见性而发布的社区 wiki 答案。随意扩展它。

正如在 cmets 中已经提到的,使其工作的步骤如下:

  1. 在一个空的命名空间中启动一个单独的 nginx 控制器以避免主控制器出现问题。

  2. 创建自定义模板,使用these 作为参考。

  3. 将它们放在ConfigMap 中,例如this

  4. example 一样将模板安装到控制器 pod 中。

【讨论】:

    猜你喜欢
    • 2021-04-06
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 2015-12-03
    • 2020-10-26
    • 2017-11-19
    • 1970-01-01
    • 2015-07-23
    相关资源
    最近更新 更多