如何在 'multi-container pod' 的容器上执行 'command with arguments'?
How to execute a 'command with arguments' on a container of 'multi-container pod'?
我有一个 app/pod:app1
,有 2 个容器 service1
和 service2
。这些服务将日志写入 /var/log/app1Service1.log 和 /var/log/aapp1Service2.log。我想从 mac 的 cli 中跟踪日志。尝试如下但没有用。
~ $ 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"
当我向命令传递参数时看到失败。
试试这个,通过下面的 cmd 运行 登录容器
kubectl exec -it app1-6f6749ccdd-4ktwf -c app1Service1 bash
现在你在容器中,检查文件是否存在并执行tail -f /var/log/app1Service1.log
添加 bash -c
或者如果您的容器有 sh
然后添加 sh -c
kubectl exec app1-6f6749ccdd-4ktwf -c app1Service1 -- bash -c "tail -f -n +1 /var/log/app1Service1.log"
希望这会有所帮助
我有一个 app/pod:app1
,有 2 个容器 service1
和 service2
。这些服务将日志写入 /var/log/app1Service1.log 和 /var/log/aapp1Service2.log。我想从 mac 的 cli 中跟踪日志。尝试如下但没有用。
~ $ 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"
当我向命令传递参数时看到失败。
试试这个,通过下面的 cmd 运行 登录容器
kubectl exec -it app1-6f6749ccdd-4ktwf -c app1Service1 bash
现在你在容器中,检查文件是否存在并执行tail -f /var/log/app1Service1.log
添加 bash -c
或者如果您的容器有 sh
然后添加 sh -c
kubectl exec app1-6f6749ccdd-4ktwf -c app1Service1 -- bash -c "tail -f -n +1 /var/log/app1Service1.log"
希望这会有所帮助