Как выполнить «команду с аргументами» в контейнере «многоконтейнерного модуля»? - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть приложение / модуль: app1 с 2 контейнерами service1 и service2.Эти службы записывают журнал в /var/log/app1Service1.log и /var/log/aapp1Service2.log.Я хотел бы вести журнал из Mac.Пробовал, как показано ниже, но не сработало.

~ $ kubectl exec app1-6f6749ccdd-4ktwf -c app1Service1 "tail -f -n +1 /var/log/app1Service1.log"
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"tail -f -n +1 /var/log/app1Service1.log\": stat tail -f -n +1 /var/log/app1Service1.log: no such file or directory"

command terminated with exit code 126
~ $

Команда ниже работает:

kubectl exec app1-6f6749ccdd-4ktwf -c app1Service1 ls
kubectl exec app1-6f6749ccdd-4ktwf -c app1Service1 "ls"

Просмотр сбоев при передаче аргументов в команду.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Добавьте bash -c или, если в вашем контейнере sh, добавьте sh -c

kubectl exec app1-6f6749ccdd-4ktwf -c app1Service1 -- bash -c "tail -f -n +1 /var/log/app1Service1.log"

Надеюсь, это поможет

0 голосов
/ 04 декабря 2018

Попробуйте, войдите в контейнер, выполнив команду cmd kubectl exec -it app1-6f6749ccdd-4ktwf -c app1Service1 bash

. Теперь вы находитесь внутри контейнера, проверьте, существует ли файл, и выполните tail -f /var/log/app1Service1.log

...