我试图附加到Kubernetes中的正在运行的容器,但是我收到下面的错误消息.
>kubectl attach -it es-client-2756725635-4rk43 -c es-node
Unable to use a TTY - container es-node did not allocate one
If you don't see a command prompt, try pressing enter.
Run Code Online (Sandbox Code Playgroud)
如何在容器yaml中启用TTY?
我有一个用例,我的 pod 以非 rootuser 身份运行并且它运行一个 python 应用程序。现在我想将文件从主节点复制到正在运行的 pod。但是当我尝试跑步时
kubectl cp app.py 103000-pras-dev/simplehttp-777fd86759-w79pn:/tmp
Run Code Online (Sandbox Code Playgroud)
这个命令挂了,但是当我以 root 用户身份运行 pod 然后运行相同的命令时,它会成功执行。我正在浏览 kubectl cp 的代码,它在内部使用 tar 命令。
Tar 命令有多个标志,如 --overwrite --no-same-owner、--no-preserve 等。现在从 kubectl cp 我们不能将所有这些标志传递给 tar。有什么方法可以使用 kubectl exec 命令或任何其他方式复制文件。
kubectl exec simplehttp-777fd86759-w79pn -- cp app.py /tmp/ **flags**
Run Code Online (Sandbox Code Playgroud)