有时候,我会有一个终端标签,其中运行着kubectl exec bash
,以检查容器或尾随日志文件。当我关闭笔记本电脑,打开我的VPN或只是失去一秒钟的Wi-Fi时,该终端有时会冻结,并且使我无法退出它,除非关闭终端选项卡或手动终止该进程。
我知道SSH会话具有enter-tilda-period组合键,可让您仅在这种情况下退出,但这似乎不适用于kubectl exec
。在这种情况下,是否有任何类似的方法可以实现此目的?
答案 0 :(得分:1)
我认为您可以尝试以下方法。
kubectl --request-timeout=10s
[0] [https://kubernetes.io/docs/reference/kubectl/kubectl/#options]
或者您可能需要实现如下功能。 [1]
[1] [http://fibrevillage.com/sysadmin/236-how-to-timeout-a-command-in-linux-shell]
答案 1 :(得分:1)
目前尚不清楚导致kubectl exec命令异常挂断的问题的根源是什么。
回到您的问题,您可以强制断开连接并返回(docker)终端的控制权
通过将--request-timeout=<value>
设置为kubectl命令行来回到您的手中:
kubectl exec --request-timeout=5s bash
可以使用kill命令发送-9信号来强制终止kubectl exec。
kill -9 $(pidof kubectl)