Web services 在k8s中调试gRPC服务?
我在库伯内特斯建立了一个服务。但是,我无法通过TCP访问它。接下来的调试步骤是什么Web services 在k8s中调试gRPC服务?,web-services,kubernetes,grpc,Web Services,Kubernetes,Grpc,我在库伯内特斯建立了一个服务。但是,我无法通过TCP访问它。接下来的调试步骤是什么 我已经检查了服务日志,流程已经启动 我已经检查了服务端点--它正确地找到了pod 我在服务舱中执行了bash,但是,我发现服务中的Internet连接速度很慢(我检查了节点IO,这不是有史以来最高的)。我的计划是安装telnet并检查是否可以手动连接到服务gRPC服务器 我尝试将“0.0.0.0/50051”和“[::]:50051”作为服务器地址/端口,但结果相同——无法工作 我尝试了使用本地主机和服务进行端
- 我已经检查了服务日志,流程已经启动
- 我已经检查了服务端点--它正确地找到了pod
- 我在服务舱中执行了bash,但是,我发现服务中的Internet连接速度很慢(我检查了节点IO,这不是有史以来最高的)。我的计划是安装telnet并检查是否可以手动连接到服务gRPC服务器
- 我尝试将“0.0.0.0/50051”和“[::]:50051”作为服务器地址/端口,但结果相同——无法工作
- 我尝试了使用本地主机和服务进行端口转发,但在通过端口转发进行连接时,它不起作用
- 当然,在部署到云中之前,该服务需要在本地进行测试。它按预期工作李>
- Kubernetes通过其提供的引擎安装在google云平台上李>
kubectl port forward 50051 50051
实用程序
编辑2:
我尝试启动普通flask web服务器,它使用特定的pod/k8s/端口配置。该问题与grpc有关。或者是端口绑定
我用过:
server.add_insecure_port("0.0.0.0:50051")
server.start()
并设法通过节点端口(10.132.0.25:31128)进行连接,这是我从kubectl get service oracle
获得的,但在集群内它表示无法访问
编辑3:
我在kubernetes和我的本地主机中尝试了相同的脚本
使用10.132.0.25:31158(节点端口):
在我的本地主机上,它通常连接到gRPC服务器。
在k8s内部,它不工作
使用oracle:50051
在k8s内部,它不工作
更新:
发现错误…很难。HTTP代理已设置,在测试的pod上,我使用了HTTP代理,它可能未实现HTTP/2(tinyproxy)。如何打印gRPC调试日志以获取此信息
更新2:
对于gRPC更好的调试日志您是否尝试从集群外部连接到您的服务?如果是,您需要公开它:。我不确定当您说“我尝试放置诸如服务器地址/端口之类的东西时,您到底做了什么?(修改配置?将这些参数提供给了
tellnet
?)这是我的kubernetes helm配置。我试图在集群内访问它。当我试图在集群外访问它时,我使用的是kubectl port forward实用程序。我不确定类型:NodePort
。我不知道它做什么(我的配置中没有它)。我通常在端口
配置中指定协议
,但我不确定这是否重要。您使用了什么语言指定服务器。添加不安全的\u端口()…
?(另外,它似乎只需要端口,并且会自动绑定0.0.0?)如果您将exec
放入容器中,是否可以在那里运行netstat-tpln
或类似程序,以查看正在使用的端口?如果您试图从同一个pod中的容器中通过名称访问服务,则可能尝试找出服务的主机名并绑定到该名称,而不是0.0.0.0?(续)(这是Kubernetes中的一个bug)。但是您应该能够在localhost
上访问它。哦,我看您已经解决了:)