因此,我试图通过打开与 Kubectl 的连接来使用 cqlsh 连接到 GKE 中的我的 scylla 实例。然而,我遇到了一些我无法理解的奇怪问题。
我在 GKE 上运行 scylla,它基本上是一个 cassandra 仿冒品,应该比 cassandra 本身运行得更快。要访问 scylla,我希望能够使用 kubectl port-forward 命令连接到数据库,这样我就可以连接外部工具,例如 table plus。当我运行时,kubectl port-forward pod/scylla-0 -n scylla 9042
我希望可以从本地计算机访问该端口,但是,当我尝试与 cqlsh localy 连接时,我收到以下错误消息:
from clqsh: Connection error: ('Unable to connect to any servers', {'127.0.0.1': ConnectionShutdown('Connection to 127.0.0.1 was closed',)})
from kubectl: E0520 17:12:12.522329 51 portforward.go:400] an error occurred forwarding 9042 -> 9042: error forwarding port 9042 to pod <some id>, uid : exit status 1: 2019/05/20 15:12:12 socat[998972] E connect(5, AF=2 127.0.0.1:9042, 16): Connection refused
我也尝试将服务直接转发到类似的结果
我个人认为这其中最奇怪的部分是,当我使用负载均衡器公开 scylla 时,我可以很好地连接到它,当我为 scylla 转发 JMX 端口时,我也可以使用 JConsole,这就是为什么我有这么多对此感到头疼。