首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTTP/2客户端前缀字符串丢失或损坏,在Kubernetes中使用Telepresence调用本地服务

HTTP/2客户端前缀字符串丢失或损坏,在Kubernetes中使用Telepresence调用本地服务
EN

Stack Overflow用户
提问于 2022-09-05 11:58:21
回答 1查看 161关注 0票数 1

我正在准备一个环境,用于运行在Kubernetes集群中的Springboot应用程序的集成测试。我使用遥临,它拦截Kubernetes集群中的通信量(GRPC API),将其路由到我的IDE(IntelliJ)中本地运行的应用程序。Kubernetes中的Springboot应用程序正在监听端口9090上的gRPC调用,并通过ClusterIP服务公开。我正在尝试拦截在Kubernetes中运行的这个应用程序的gRPC流量,并使用下面的Telepresence截取命令将其路由到本地运行的应用程序,该应用程序侦听端口9095

代码语言:javascript
运行
复制
telepresence intercept service-name --namespace=ns --port 9095:9090 --env-file C:\Users\SC1063\telepresence\env_files\intercept-config.env

接收到gRPC调用时的本地应用程序将引发以下异常

代码语言:javascript
运行
复制
io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2Exception: HTTP/2 client preface string missing or corrupt. Hex dump for received bytes: 1603010200010001fc0303ffd1d5efdfb5771b509014337a

从我所理解的弹簧引导+ GRPC Http2Exception问题中,运行在Kubernetes中的客户端应用程序的调用正在尝试使用TLS保护通信。然而,库伯奈特内部非截获的gRPC调用没有任何问题。应用程序环境使用Istio作为服务网格。

客户端日志中观察到的错误

代码语言:javascript
运行
复制
 upstream connect error or disconnect/reset before headers. retried and the latest reset reason: connection failure, transport failure reason: TLS error: 268435703:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER]
EN

回答 1

Stack Overflow用户

发布于 2022-09-05 18:00:42

造成此问题的根本原因是,客户端在向服务器发送请求之前应用TLS,而服务器正在等待明文。除非禁用,使用TLS确保外部出站流量( K8s集群外的流量)。创建Istio命运规则CRD,该规则被公使代理用于在路由流量时禁用TLS。

代码语言:javascript
运行
复制
spec:
  trafficPolicy:
  tls:
    mode: DISABLE
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73609025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档