kubernetes - 为什么安全 GRPC 调用无法到达入口网关?
问题描述
我在 kubernetes (1.12.x) 中安装了 istio 1.22.2 并启用了 sds。我一直在关注这一点,我能够在入口网关处为正常服务(在 HTTP/1.1 上)进行 ssl 终止。我可以在网关的访问日志中看到它。
网关
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: mygateway
spec:
selector:
istio: ingressgateway # use istio default ingress gateway
servers:
- port:
number: 31400
name: tcp
protocol: HTTPS
tls:
mode: SIMPLE
credentialName: "review-this-co" # must be the same as secret
hosts:
- "xyz.example.com"
但是,当通过安全通道使用 GRPC 时,我看不到任何访问日志。(Grpc 客户端失败)。我也期待 grpc 的类似行为(即在入口网关处的 ssl 终止)。
注意:如果网关配置如下
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: mygateway
spec:
selector:
istio: ingressgateway # use istio default ingress gateway
servers:
- port:
number: 31400
name: tcp
protocol: GRPC
hosts:
- "xyz.example.com"
已使用网络负载均衡器(通过)
解决方案
如果我理解正确,这里的事情是:
GRPC 目前在
HTTP2
类型传输上工作当前入口无法
HTTP2
那么你确定你的客户正在使用HTTP1
吗?因为否则它可能不起作用。
请让我知道这是否有帮助。
推荐阅读
- websocket - Ballerina:回调时出现多个 websocket 错误
- facebook - Facebook登录颤动应用程序错误与本机登录
- javascript - estimateDocumentCount() 返回一个对象而不是一个数字
- model-checking - 确定两个布尔函数何时等效?
- c# - 两个客户端之间的数据同步(验证)
- html - 标签显示在复选框下方,两者都应居中对齐
- css - SVG:在同一个(x,y)上创建2个矩形会创建不需要的边框
- mysql - 如何获取分组并满足组内限制的条目?
- google-pagespeed - 错误谷歌速度灯塔返回错误:NO_FCP
- ruby-on-rails - Ruby on Rails: LoadError: cannot load such file -- paypal-express