使用kubectl實現Kubernetes容器與本地的文件雙向復制


    有時候需要想把本地計算機上的文件復制到遠程k8s中正在運行的容器里或實現逆向文件復制,可以通過kubectl的cp命令完成這個需求。

    此命令需要雙方的系統環境里已安裝tar工具。

    比如說:

    I) 把本地計算機當前目錄下的lalalaA文件復制到指定k8s命名空間中某個pod里的當前目錄下temp子目錄,並將復制后的文件命名為lalalaB。

       kubectl cp ./lalalaA <some-namespace>/<some-pod>:./temp/lalalaB

       或者:

       kubectl cp ./lalalaA <some-namespace>/<some-pod>:/<root_dir>/<parent_dir>/temp/lalalaB

    II) 把遠程k8s容器中某個文件復制到本地計算機,並將復制后的文件命名為lalalaC。

        注意此時k8s中的文件路徑必須是絕對路徑而且<some_pod>后面的冒號不能緊跟着'/'符號,否則kubectl報"tar: removing leading '/' from member names" warning,雖然目前這個warning並不意味着文件復制失敗......

        另外如果此時k8s中的文件路徑是相對路徑,那么kubectl報"tar contents corrupted" error,文件復制失敗。

       kubectl cp <some-namespace>/<some-pod>:<root_dir>/<parent_dir>/temp/lalalaB ./lalalaC

     

    參考及其它兼容的kubectl cp語法(參考最高贊答案):https://stackoverflow.com/questions/52407277/how-to-copy-files-from-kubernetes-pods-to-local-system

    kubectl從遠程pod復制文件時語法細節的討論(見@isaiah1112的回答,同時也是最高贊答案): https://github.com/kubernetes/kubernetes/issues/58692


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM