Команда Killing kubectl exe c с главного узла не уничтожает команду, запущенную внутри модуля - PullRequest
0 голосов
/ 29 января 2020

Я выполнил команду 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. Ожидаемое поведение?

1 Ответ

4 голосов
/ 29 января 2020

Запустив kubectl exe c -it , вы подключаете / транслируете свой терминал к терминалу pod, чтобы при вводе чего-либо на свой терминал поток передавался на терминал pod. Вот почему, когда вы запускаете kubectl exe c -it pod_XXXX - top на своем терминале, это работает как ожидалось. Помните, что в терминале POD используется интерфейс top , а не ваш.

Так что, когда вы набираете sudo kill -9 pid_of_kubectl_exec_command , он разрывает соединение между вашим терминалом и терминал POD. Итак, процесс внутри терминала POD продолжает работать.

Когда вы нажимаете ctrl + c с вашего терминала, он * ctrl + c передает на терминал POD Вот почему top завершается мгновенно.

...