Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I need to copy dump data from pod to local. Below the commands I am trying but I am getting error: 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 version

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"}

Can anyone help how to fix this issue?

Thanks

like image 818
User1984 Avatar asked May 20 '21 16:05

User1984


People also ask

How do I copy a file from a Kubernetes pod?

If you're using Kubernetes, you may find the need to move files to and from containers running on pods. Before the days of containerization, we would use a tool like SCP (secure copy protocol) to move files to and from remote machines.

What does kubectl CP do?

Kubectl cp command is most widely used to copy files between pods and local file system. It is more like SCP in Linux world to copy files between local to remote machines using ssh protocol.


Video Answer


2 Answers

For newer versions of kubectl, adding a retries=-1 flag may resolve the issue:

kubectl cp --retries=-1 pod-www-xxx-yyy-zzz:/path/to/remote/dir ~/local/dir 
like image 137
Silas Palmer Avatar answered Oct 20 '22 05:10

Silas Palmer


Using a "cat" command, rather than "cp" worked for me -- but only after 3 attempts.

The "cp" command failed over and over to get the whole file.

This "cat" style command did better each time.

So try this and see if your odds improve!

kubectl exec -i [pod name] -c [container name] -- cat [path to file] > [output file]
like image 8
warrens Avatar answered Oct 20 '22 06:10

warrens