【问题标题】:Unable to Copy data from POD to local using kubectl cp command无法使用 kubectl cp 命令将数据从 POD 复制到本地
【发布时间】:2021-05-20 16:41:49
【问题描述】:

我需要将转储数据从 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"}

谁能帮忙解决这个问题?

谢谢

【问题讨论】:

  • 在尝试cp 大文件时,这似乎是 Kubernetes 中的一个错误。我认为这是你的情况。见:github.com/kubernetes/kubernetes/issues/60140
  • 您能否将您的数据库转储移动到一个单独的目录,然后尝试复制整个目录?这可能看起来像这样:kubectl cp device-database-79fc964c8-q7ncc:tmp/plsql_data/directory_containing_prod_dump /Users/raja/new_local_dir_containing_db_dump。根据this comment,它可能会有所帮助。
  • 马里奥的解决方案奏效了。它应该是一个顶级的答案。
  • 复制整个目录对我有用。谢谢@mario
  • @BageshwarPratapNarain ,我很高兴听到我的解决方案对您有所帮助。那么让我将其发布为答案。

标签: kubernetes kubectl


【解决方案1】:

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

这可能看起来像这样:

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İbrahim ULUDAĞ 在 cmets 中也证实该解决方案对他们有效。

【讨论】:

  • 对我来说,只需将文件复制到/tmp/(在从 pod 复制到本地机器之前)也可以,我在 windows 机器上。
【解决方案2】:

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

“cp”命令一遍又一遍地失败,无法获取整个文件。

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

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

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

【讨论】:

  • 今天我也遇到了同样的问题。它以前工作正常。 tysm
  • 开发人员似乎正在积极调查此问题,作为 kubernetes 问题 #60140。
  • cat 只复制 ascii 文件!
  • @Gaurav 不正确 - 我只是用上面的方法下载二进制文件没有问题
  • 更好的方法是使用 tar 代替 cat,正如这里所建议的 - kubernetes.io/docs/reference/kubectl/cheatsheet/…
【解决方案3】:

就我而言。复制文件夹没有帮助。相反 tar.gz 有帮助

【讨论】:

【解决方案4】:

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

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

【讨论】:

    猜你喜欢
    • 2019-09-17
    • 2021-10-15
    • 2017-06-01
    • 2016-10-13
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多