无法使用 kubectl cp 命令将数据从 POD 复制到本地

Unable to Copy data from POD to local using kubectl cp command

我需要将转储数据从 pod 复制到本地。在我正在尝试的命令下方,但出现错误:unexpected EOF

kubectl cp device-database-79fc964c8-q7ncc:tmp /Users/raja
error: unexpected EOF

or

kubectl cp device-database-79fc964c8-q7ncc:tmp/plsql_data/prod.dump /Users/raja/prod.dump
error: unexpected EOF


kubectl 版本

kubectl version --client
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:31:21Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"darwin/amd64"}

谁能帮忙解决这个问题?

谢谢

使用“cat”命令而不是“cp”对我有用——但仅在尝试 3 次之后。

“cp”命令多次失败以获取整个文件。

这种“cat”风格的命令每次都做得更好。

所以试试这个,看看你的几率是否提高!

kubectl exec -i [pod name] -c [container name] -- cat [path to file] > [output file]

你能将你的数据库转储移动到一个单独的目录然后尝试复制整个目录吗?

这可能看起来像这样:

kubectl cp device-database-79fc964c8-q7ncc:tmp/plsql_data/directory_containing_prod_dump /Users/raja/new_local_dir_containing_db_dump

根据 this comment 这可能有帮助。

Bageshwar Pratap Narain and İbrahim ULUDAĞ 在评论中也证实了这个解决方案对他们有效。

以我为例。复制文件夹没有帮助。相反 tar.gz 帮助

对于较新版本的 kubectl,添加 retries=-1 标志可能会解决问题:

kubectl cp --retries=-1 pod-www-xxx-yyy-zzz:/path/to/remote/dir ~/local/dir