从 K8s 的 Pod 中拷贝大文件

从 K8s 的容器中拷贝文件可以使用kubectl cp命令,但是对于较大的文件(100M 以上)可能就不是很好使了,拷贝过程经常会出现EOF错误 对于较大的文件,我是这样操作的: 压缩 通过压缩可以减小大文件的体积 tar -czvf largefile.tar.gz largefile 此操作也可以用于打包整个文件夹,以便达到拷贝文件夹的目的 分片 对于体积较大的文件,即使压缩后仍然有好几百 M,这时使用kubectl cp也不一定能够拷贝下来,所以需要对其分割 split -b 50M -d largefile.tar.gz largefile.tar.gz 此操作会将largefile.tar.gz按照 50M/每个文件的大小分割为多个文件,-d选项则是使用数字来作为后缀(默认是英文字母) 例如:largefile.tar.gz有 220M,则分割后会变为 largefile.tar.gz00 # 50M largefile.tar.gz01 # 50M largefile.tar.gz02 # 50M largefile.tar.gz03 # 50M largefile.tar.gz04 # 20M 拷贝 使用kubectl cp命令拷贝分割后的文件 kubectl cp <pod-name>:largefile.tar.gz00 largefile.tar.gz00 kubectl cp <pod-name>:largefile.tar.gz00 largefile.tar.gz01 kubectl cp <pod-name>:largefile.tar.gz00 largefile.tar.gz02 kubectl cp <pod-name>:largefile.tar.gz00 largefile.tar.gz03 kubectl cp <pod-name>:largefile.tar.gz00 largefile.tar.gz04 对于多个容器的 Pod,可以使用-c选项指定具体的容器 合并 使用cat命令合并多个文件 cat largefile....

2023年3月24日