无法在 GCP 的 wrokload 中从本地端口转发到 Redis 服务器

问题描述 投票:0回答:4

我正在尝试连接到开发服务器中的 Redis 缓存,该服务器是 GCP 中的一个 Pod。我们正在尝试使用以下命令通过代理服务器连接它

gcloud beta compute ssh --zone "<zone>" "proxy-server" --project "project-name" --internal-ip --ssh-flag="-NL <local_port>:<redis-server-ip>:<port>"

但它在我的 Windows 系统中安装的 google 云控制台中抛出错误 错误是'未知选项“-NL”'

ERROR: (gcloud.compute.beta.ssh) [C:\Users\<user-dir>\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin\sdk\putty.exe] exited with return code [1].

但是在mac上运行良好,请尽快帮我解决问题。

按照答案之一的建议,尝试运行以下命令

kubectl port-forward pod/pod-58759-s4wfz 6377:6379

现在收到此错误:

C:\Windows\system32>kubectl port-forward pod/pod-587597c46d-s4wfz 6377:6379
Forwarding from 127.0.0.1:6377 -> 6379
Forwarding from [::1]:6377 -> 6379
Handling connection for 6377
E0120 12:34:32.504209   18476 portforward.go:406] an error occurred forwarding 6377 -> 6379: error forwarding port 6379 to pod a5bba767d7ec94aaf, uid : exit status 1: 2022/01/20 07:04:34 socat[910] E connect(5, AF=2 127.0.0.1:6379, 16): Connection refused
E0120 12:34:32.508193   18476 portforward.go:234] lost connection to pod

谢谢

google-cloud-platform redis google-kubernetes-engine portforwarding
4个回答
1
投票

Putty SSH(以及 Windows 的 OpenSSH 客户端)不支持

-N
标志。 但是

gcloud beta compute ssh --zone "<zone>" "proxy-server" --project "project-name" --internal-ip --ssh-flag="-L <local_port>:<redis-server-ip>:<port>"

在 Windows 上应该可以正常工作。


1
投票

如果您的redis服务器部署在GKE上,您可以使用kubectl port-forward。它应该看起来像

kubectl port-forward pod/POD_NAME local-port:redis-server-port

并使用 localhost:local-port 连接到你的 redis 服务器

无论操作系统如何,这都应该有效


0
投票

经过 1 天的努力,我找到了一个答案,纠正了我的命令,只需要使用下面的命令,我们应该在 Windows 中使用 -N -L 来代替 -NL

gcloud beta compute ssh --zone "<zone>" "proxy-server" --project "project-name" --internal-ip -- -N -L <local_port>:<redis-server-ip>:<port>

0
投票

仍然无法连接-N -L

© www.soinside.com 2019 - 2024. All rights reserved.