minikube 环境中的 gRPC 连接失败

A gRPC connection fails in minikube environment

在本地,裸机,两个独立的 'services' 通过 gRPC 连接、客户端和 'backend' 成功地相互通信。两者都使用 gRPC 传输作为 NestJS 应用程序实现。

在 kubernetes(minikube) 环境中部署时,我在客户端中得到 Error: 14 UNAVAILABLE: No connection established。后端侦听 localhost:50051(端口从 k8 服务公开),前端尝试连接 engine-svc.default.svc.cluster.local:50051,其中直到点的第一部分是服务名称,我已经 nslookup以确保这是完整的域名。

我尝试将端口转发到 gRPC kubernetes 服务,这 'backend' 部分连接工作正常并且通信 to/from 工作正常。因此 'frontend' deployment/pods 是建立连接失败的部分。

Minikube 与 coreDNS 打包在一起。我试过调试它但没有成功。当 'frontend' 服务尝试连接时,来自 coreDNS 的日志标有 NOERROR ,我读过这意味着找到了服务;还是没成功。

还有什么问题?我错过了什么?非常感谢任何帮助。

感谢 解决了我的问题。问题是后端正在监听 localhost:50051,这意味着仅本地连接; port-forwarding 也算作一个,所以这就是它起作用的原因。将后端部分的 'listen on' 属性 更改为 0.0.0.0:50051 解决了问题;