1Panel-dev / webkubectl

Run kubectl command in Web Browser.
Apache License 2.0
854 stars 120 forks source link

关闭浏览器窗口后容器中依然存在sh命令【新场景未解决】 #49

Closed w7team closed 1 year ago

w7team commented 1 year ago

7 接这个问题后:

这个问题还是没解决,目前测还是有问题。关闭浏览器后没结束进程,超过180s后进程依然存在 比如我进入终端后,又执行了一次bash或者sh,然后关闭,这个时候第二次执行的sh不会结束

liqiang-fit2cloud commented 1 year ago

我这没重现问题,多次bash或者sh,180s之后进程都会结束。 可以把你的重现步骤录个视频发出来看看。

w7team commented 1 year ago

测试步骤: 1,先进入bash 2,执行kubectl exec -it 进入某个pod 3,在pod中执行命令,比如vi,sh,bash这种 4,直接关闭浏览器,pod中存在僵尸进程

我目前的做法是断开时传了一个exit进去,但是无法从根本上解决,比如碰到了vi这种,或者bash中套sh这种需要退出两次

liqiang-fit2cloud commented 1 year ago

刚试了,不仅是kubectl exec,docker exec也一样,只有在容器内执行exit才能退出进程,kill kubectl exec和kill docker exec都不会结束进程。 kubectl和docker本身的机制就是这样,跟webkubectl没有关系,这个只能靠kubectl和docker解决。 你可以参考别人是怎么解决的或者搜搜类似的问题,https://stackoverflow.com/questions/50939668/how-can-i-exit-a-kubectl-exec-command-that-has-frozen-due-to-a-network-error