作者信息:https://home.cnblogs.com/u/huangjiabobk

在k8S中,如何实现Pod中容器的文件和宿主机之间相互拷贝?

在 Kubernetes (k8S) 中,要实现 Pod 中容器的文件与宿主机之间的相互拷贝,可以使用 kubectl cp 命令。以下是具体的命令格式和用法:

从 Pod 中复制文件到本地(宿主机):
kubectl cp [NAMESPACE/]POD:CONTAINER_PATH LOCAL_FILEPATH

例如,将名为 my-pod 的 Pod 中,容器内的 /path/to/file-inside-pod 文件复制到本地当前目录下的 local-file.txt

kubectl cp my-namespace/my-pod:/path/to/file-inside-pod ./local-file.txt

如果 Pod 在默认命名空间且不需要指定容器名称(只有一个容器),则简化为:

kubectl cp my-pod:/path/to/file-inside-pod ./local-file.txt
从本地(宿主机)复制文件到 Pod 中:
kubectl cp LOCAL_FILEPATH [NAMESPACE/]POD:CONTAINER_PATH

例如,将本地的 local-file.txt 复制到 my-pod 的 Pod 中,容器内的 /path/to/pod-file 目录下:

kubectl cp ./local-file.txt my-namespace/my-pod:/path/to/pod-file/

请注意以下几点:

  • 如果需要操作的 Pod 在非默认命名空间中,请务必加上命名空间。
  • 当复制到 Pod 中时,目标路径必须是目录,而不能是一个已存在的文件。
  • kubectl cp 命令会保留文件属性,如需忽略文件权限等属性,可以添加 --no-preserve 标志。

综上所述,这些命令会在集群上下文中执行,并且能够跨越网络将数据安全地从宿主机传输到 Pod 或反之。

posted @ 2024-02-22 15:00  黄嘉波  阅读(1578)  评论(1编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波