Istio部署的K8s集群中服务间无法建立RMI连接
Istio集群中RMI服务通信故障排查问题
我有一个部署了Istio的Kubernetes集群,运行着多个服务。其中两个注入Istio Sidecar的Pod无法通过RMI协议建立通信。
相关Kubernetes Service配置如下:
Service-1配置
apiVersion: v1 kind: Service metadata: name: service-1 namespace: xxx spec: ports: - name: rmi-port port: 10022 targetPort: 10022 appProtocol: tcp selector: app: svc-1 type: ClusterIP
Service-2配置
apiVersion: v1 kind: Service metadata: name: service-2 namespace: xxx spec: ports: - name: rmi-port port: 10021 targetPort: 10021 appProtocol: tcp selector: app: svc-2 type: ClusterIP
service-2作为请求发起方,尝试连接service-1的10022端口,但始终报错:
java.net.SocketException: Connection reset - java.rmi.ConnectIOException : error during JRMP connection establishment
移除请求发起Pod的Envoy代理后通信可正常进行,且发起RMI请求时Envoy代理日志中出现BlackHoleCluster。
更新信息
- 接收RMI服务的相关状态截图
- 发起方服务的相关状态截图
发起方通过如下格式的URL调用RMI服务:rmi://rmi-service.namespace.svc.cluster.local:10022/rmi-service,暂不清楚源码调用细节。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

