AKS:当进程仍在容器中运行时,kubectl exec 和 kubectl 日志退出
Posted
技术标签:
【中文标题】AKS:当进程仍在容器中运行时,kubectl exec 和 kubectl 日志退出【英文标题】:AKS : kubectl exec & kubectl log exits in between while the process is running in the container still 【发布时间】:2022-01-23 05:00:59 【问题描述】:我在两个不同的 Windows 命令提示符下同时运行以下 kubectl exec & kubectl logs cmd
kubectl exec $pod containername -n namespace -- bash -c "cd somebatch.ksh > /proc/1/fd/1 2>&1"
kubectl logs $pod containername -n namespace
当进程仍在容器中运行时,两者都会从 Windows 命令提示符中退出。
如果我再次运行 kubectl logs cmd,我可以看到正在运行的日志
kubectl logs $pod containername -n namespace
我应该怎么做才能保持 kubectl exec & kubectl log 命令运行而不退出。
【问题讨论】:
【参考方案1】:您可以通过包含 --follow
来“跟踪”日志命令。
exec
在容器中创建一个 shell 并运行脚本。一旦创建了 shell 并通过了脚本,该过程就完成了。
如果你想保持会话打开,你应该能够exec
只是bash
然后以交互方式运行命令。您可能需要包含--stdin --tty
,即kubectl exec --stdin --tty ... -- bash
【讨论】:
kubectl exec --stdin --tty 抛出无效选项 我怀疑您没有正确运行该命令。这些都是有效的标志。见kubectl exec 你能解释一下这些标志 --stdin --tty 吗?它有什么作用? 请阅读我包含的文档的链接。以上是关于AKS:当进程仍在容器中运行时,kubectl exec 和 kubectl 日志退出的主要内容,如果未能解决你的问题,请参考以下文章
当图像在 docker 机器中运行时,X11 转发不起作用,但如果图像在没有 docker 机器的情况下运行,则它可以正常工作