几天以来,我遇到了一个被阻止的问题。尝试了很多东西,但没有任何效果。
我有一个k8s集群,其中有一个运行Corda(https://docs.corda.net/docker-image.html)的吊舱。该pod公开了一个RPC端点(10201),该端点是我希望能够使用corda-shell工具从群集外部(我的笔记本电脑)访问的端点。
所以我创建了一个入口(使用ingress-nginx)并添加了一个如下所示的配置映射:
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-tcp-services
namespace: {{ .Release.Namespace }}
data:
10201: {{ .Release.Namespace }}/{{ .Release.Name }}-corda-node:10201
corda pod的service.yaml看起来像这样:
apiVersion: v1
kind: Service
metadata:
name: {{ include "corda-node.fullname" . }}
labels:
{{ include "corda-node.labels" . | indent 4 }}
spec:
type: ClusterIP
ports:
- port: 80
targetPort: http
protocol: TCP
name: http
- port: 10200
targetPort: p2p
protocol: TCP
name: p2p
- port: 10201
targetPort: rpc
protocol: TCP
name: rpc
- port: 10202
targetPort: rpcadmin
protocol: TCP
name: rpcadmin
selector:
app.kubernetes.io/name: {{ include "corda-node.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
但是到目前为止,无论我尝试什么,都无法从外部连接到它。 从群集中的另一个pod /容器,它可以正常工作,就像我将端口转发到本地容器时一样。
注意:我可以从外部连接到群集中的其他服务。实际上,此Corda Pod带有一个可以在8080上公开API的小车,我可以访问它。
我可以看到入口暴露了端口'10201',因此我想它考虑了我的tcp-services,但似乎无法将请求转发到corda pod。
如果我尝试做telnet public-ip-of-the-cluter 10201
,那我就超时了。
运行corda-shell
工具时也是如此...
据我所知,我在入口控制器窗格中看不到任何相关日志。
我使用各种'kubectl describe xxx'命令创建了一个small github repo,以便为您提供我所做的概述。
如果您需要更多信息,请问我。我真的为此感到挣扎,很可能是我在某处做蠢事...
谢谢!
编辑:
我将入口的日志放在---v = 3上,启动时可以看到它:
I0215 09:30:32.081819 6 controller.go:333]搜索端点 TCP端口号为10201的服务 “鲑鱼蝗/鲑鱼蝗corda节点-corda节点”
││I0215 09:30:32.081836 6 endpoints.go:74]获取端点 用于服务“鲑鱼蝗/鲑鱼蝗corda节点-corda节点”和 端口&ServicePort {名称:rpc,协议:TCP,端口:10201,目标端口:{1 0 rpc},NodePort:0,}││I0215 09:30:32.081849 6 Endpoints.go:117]找到服务的端点 “鲑鱼蝗/鲑鱼蝗corda节点-corda节点”:[{10.96.1.13 10201 &ObjectReference {种类:荚,名称空间:鲑鱼蝗,名称:鲑鱼蝗-corda-node-corda- │
但是当我尝试通过corda-tools-shell连接到它时,没有任何活动。
编辑2:
我们发现了问题所在,入口-> dns解决了cloudflare代理,该代理未处理1xxxx端口...
答案 0 :(得分:1)
我们发现了问题所在,入口-> dns解决了cloudflare代理,该代理未处理1xxxx端口...
答案 1 :(得分:0)
入口日志中是否有任何传入请求? Ingress可能正在寻找可能无法正常工作的http标头Corda RPC