kubectl exe c завершается с ошибкой «Невозможно использовать TTY - ввод не является терминалом или файл нужного типа» - PullRequest
2 голосов
/ 24 марта 2020

Я запускаю конвейер jenkins с помощью следующей команды:

kubectl exec -it kafkacat-5f8fcfcc57-2txhc -- kafkacat -b cord-kafka -C -t BBSim-OLT-0-Events -o s@1585031458

, которая нормально работает на терминале машины, на которой работает конвейер, но на реальном конвейере я получаю следующую ошибку: «Невозможно использовать TTY - ввод не является терминалом или файлом нужного типа»

Любые советы о том, как go решить эту проблему?

Ответы [ 2 ]

4 голосов
/ 24 марта 2020

Когда флаги -it используются с kubectl exec, он включает интерактивный режим TTY. Учитывая ошибку, о которой вы упомянули, похоже, что Jenkins не выделяет TTY.

Поскольку вы запускаете команду в задании Jenkins, я предполагаю, что ваша команда не обязательно является интерактивной. Возможное решение этой проблемы - просто убрать флаг -t и попытаться выполнить следующее:

kubectl exec -i kafkacat-5f8fcfcc57-2txhc -- kafkacat -b cord-kafka -C -t BBSim-OLT-0-Events -o s@1585031458
1 голос
/ 24 марта 2020

Удалить параметр -t. Это запрашивает TTY, которого, как вы отметили, нет в Jenkins.

...