Docker 如何退出由于网络错误而冻结的'kubectl exec'命令?

Docker 如何退出由于网络错误而冻结的'kubectl exec'命令?,docker,kubernetes,kubectl,Docker,Kubernetes,Kubectl,有时,我会在终端选项卡中运行kubectl exec bash,以检查容器或跟踪日志文件。当我关闭笔记本电脑,打开VPN,或只是暂时失去Wi-Fi时,该终端有时会冻结,使我无法在不关闭终端选项卡或手动终止进程的情况下退出它 我知道SSH会话有一个enter-tilda-period键组合,允许您在这种情况下退出,但这似乎不适用于kubectl-exec。在这种情况下,有没有类似的方法可以做到这一点?我认为您可以尝试以下方法 kubectl --request-timeout=10s [0][

有时,我会在终端选项卡中运行
kubectl exec bash
,以检查容器或跟踪日志文件。当我关闭笔记本电脑,打开VPN,或只是暂时失去Wi-Fi时,该终端有时会冻结,使我无法在不关闭终端选项卡或手动终止进程的情况下退出它


我知道SSH会话有一个enter-tilda-period键组合,允许您在这种情况下退出,但这似乎不适用于
kubectl-exec
。在这种情况下,有没有类似的方法可以做到这一点?

我认为您可以尝试以下方法

kubectl --request-timeout=10s
[0][

或者您可能需要实现如下功能。[1]


[1] [

不清楚导致exec命令异常挂起的问题的根源是什么

回到您的问题,您可以强制断开连接并返回(docker)终端的控制 通过对kubectl命令行设置:
--request timeout=
返回到您的手中:

kubectl exec——请求超时=5s bash

通过使用kill命令发送-9信号,可以强制终止kubectl exec


kill-9$(pidof kubectl)

我想说它与您的终端更相关,而不是其他任何东西。问题是关于终止交互式会话,而不是命令超时。在我的例子中,一个简单的
pkill-f kubectl
(即
术语
信号)起了作用,而
-9
则不需要。