我从主节点运行了kubectl exec -it pod_XXXX -- top
命令。然后通过另一个终端的kubectl exec
命令终止sudo kill -9 <pid_of_kubectl>
进程。
kubectl exec -it pod_XXXX -- top
sudo kill -9 <pid_of_kubectl_exec_command>
内部POD中的top
命令保持运行。当我按crtl+c
终止kubectl exec
时,看不到此问题。这是预期的行为吗?
答案 0 :(得分:4)
通过运行 kubectl exec -it ,您可以将终端连接/流式传输到Pod终端,这样,如果您在终端上键入任何内容,就可以流式传输到Pod终端。这就是为什么当您在终端上运行 kubectl exec -it pod_XXXX-top 时,它能按预期工作的原因。请记住,POD的终端运行的是 top 界面,而不是您的界面。
因此,当您键入 sudo kill -9 pid_of_kubectl_exec_command 时,它将终止您的终端与POD终端之间的连接。因此,POD终端内部的进程将继续运行。
当您从终端按 ctrl + c 时,它将 ctrl + c 流到POD终端,这就是 top 立即终止的原因