繁体   English   中英

一条路径的 kubernetes nginx 入口 GRPC

[英]kubernetes nginx ingress GRPC for one path

我正在尝试设置nginx kubernetes ingress 我目前能够在不同的路线上提供 http 和 websockets 内容。

但是我无法在同一主机上添加 GRPC 路由。 添加此注释nginx.ingress.kubernetes.io/backend-protocol: "GRPC"会破坏现有路由。

我的 java GRPC 客户端退出Caused by: io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2Exception: First received frame was not SETTINGS. Hex dump for first 5 bytes: 485454502f Caused by: io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2Exception: First received frame was not SETTINGS. Hex dump for first 5 bytes: 485454502f根据https://github.com/grpc/grpc-java/issues/2905这意味着请求被视为 HTTP

有没有办法使用 nginx kubernetes 入口在同一主机上拥有 http/websocket/grpc 路由? 或者,是否有另一个入口可以使用它?

由于您希望注释nginx.ingress.kubernetes.io/backend-protocol: "GRPC"仅适用于主机的某些路由,因此您可以声明两个 Ingress 定义。 第一个用于所有 HTTP 路由,第二个用于 GRPC 路由。

Nginx Ingress Controller 将选择所有 Ingress 定义(带有预期的IngressClass ),并将使用它们来组成nginx.conf 这种行为非常适合具有需要在注释中进行不同调整的路径的可能性,例如重写目标,或者在您的情况下,需要不同的后端协议。

特别是,来自 Nginx Controller 文档:

多个 Ingress 可以定义不同的注解。 这些定义不在 Ingress 之间共享。

您可以在文档中查看用于构建nginx.conf的所有步骤: https://kubernetes.github/#building-the-nginx/how-itworks/#building-the-nginx/how-itworks

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM