Kubectl: получить оболочку для работающего контейнера под Windows - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь войти в работающий контейнер, используя Kubectl, в соответствии с инструкциями в https://kubernetes.io/docs/tasks/debug-application-cluster/get-shell-running-container/,, но у меня ничего не получается:

kubectl exec -it mycontainer -- /bin/bash

Невозможно использовать TTY - вход не является терминалом или правильным видом ошибка файла rpc: code = 2 desc = oci ошибка времени выполнения: ошибка exec: container_linux.go: 247: запуск процесса контейнера вызвал "exec: \ "D: / Applications / Git / usr / bin / bash \": stat D: / Applications / Git / usr / bin / bash: такого файла или каталога нет "

команда завершена с кодом выхода 126

Похоже, что kubectl пытается выполнить bash на моей машине, а это совсем не то, чего я хочу достичь.

Я могу выполнять команды без пробелов:

$ kubectl exec mycontainer 'ls'
lib
start.sh

Но не с:

$ kubectl exec mycontainer 'ls .'
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"ls .\": executable file not found in $PATH"

command terminated with exit code 126

Что я делаю не так?

Я пробовал оба в mingw git shell, как и в простой консоли Windows.

1 Ответ

0 голосов
/ 09 января 2019

Кажется, это может быть связано с этой проблемой github .

Одним из обходных путей может быть использование winpty, как указано здесь .
winpty kubectl.exe exec -it pod-name -- sh

Вы также можете попробовать /bin/sh вместо /bin/bash, у меня это сработало, но у меня нет машины с Windows, чтобы проверить ее в той же среде, что и у вас.

...