gpt4 book ai didi

kubernetes - 我如何在 GKE 中私下转发 cqlsh 的连接

转载 作者:行者123 更新时间:2023-12-02 12:04:10 25 4
gpt4 key购买 nike

因此,我试图通过打开与 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,这就是为什么我有这么多对此感到头疼。

最佳答案

它失败的原因是端口转​​发只绑定(bind)到本地主机(127.0.0.1)。如果你带着

kubectl exec -ti pod/scylla-0 -n scylla -- /bin/bash
yum install net-tools -y
netstat -nlup | grep scylla

您会注意到 scylla 绑定(bind)到容器 pod IP 而不是 127.0.0.1,因此连接被拒绝。

尝试: kubectl port-forward --address your_pod_ip pod/mypod 9042:9042
或者: kubectl port-forward --address your_service_ip service/myservice 9042:9042
我自己没有尝试过,但我认为它可以工作。请告诉我。

关于kubernetes - 我如何在 GKE 中私下转发 cqlsh 的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56224019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com