kubectl 端口转发超时 lost connection to pod

what 发表于: 2022-02-14   最后更新时间: 2022-02-14 23:23:02   1,547 游览

在使用kubectl port-forward功能时,我能够成功地将本地端口转发到远程端口。但是,似乎在空闲几分钟后,连接就断开了。不知道为什么会这样。

下面是用于端口转发的命令:

kubectl --namespace somenamespace port-forward somepodname 50051:50051

错误信息:

Forwarding from 127.0.0.1:50051 -> 50051
Forwarding from [::1]:50051 -> 50051
E1125 17:18:55.723715    9940 portforward.go:178] lost connection to pod

如何能够保持连接?

发表于 2022-02-14

将kube的streaming-connection-idle-timeout设置为0应该是一个正确的解决方案,但如果你不想改变任何东西,你可以使用while-do结构。

格式:

while true; do <<YOUR COMMAND HERE>>; done

所以在CLI中输入:

while true; do kubectl --namespace somenamespace port-forward somepodname 50051:50051; done

另外一种方式是在另一个终端中,每隔10秒连接一次该端口,以保持连接的活跃:

while true ; do nc -vz 127.0.0.1 50051 ; sleep 10 ; done

这样来保持kubectl在失去连接时重新连接的状态。

what -> 半兽人 2年前

谢谢,改了streaming-connection-idle-timeout好了!

你的答案

查看kubernetes相关的其他问题或提一个您自己的问题