提问者:小点点

kubectl cp bitnami apache helm图表:无法复制到pod文件系统的确切位置


我正在尝试在我的本地机器上部署一个带有docker-桌面及其带有bitnami apache helm图表的kubernetes集群的react应用程序。
我正在遵循本教程。
本教程让您在公共存储库上发布映像(步骤2),我不想这样做。确实可以通过持久卷声明传递应用程序文件。
这在以下教程中进行了描述。

第二个教程的第2步让您创建一个指向PVC的pod,然后要求您使用命令
复制那里的应用程序文件

kubectl cp /myapp/* apache-data-pod:/data/

我的问题:

  1. 我不能使用*通配符,否则我会收到错误。为了避免这种情况,我只是运行

kubectl cp. apache-data-pod:/data/

kubectl cp. apache-data-pod:/

但是这会复制pod文件系统根目录中第一个数据文件夹所在位置的文件。

我需要把数据直接复制进去

问候


共1个答案

匿名用户

**使用下面提到的命令中的完整路径将本地文件复制到POD:*

kubectl cp apache-pod:/var/www/html/index.html /tmp

*如果POD上有多个容器,请使用以下语法将文件从本地复制到pod:

kubectl cp /<path-to-your-file>/<file-name> <pod-name>:<fully-qualified-file-name> -c <container-name>

需要记住的要点:

  1. 当引用POD上的文件路径时。它总是相对于您在图像上定义的WORKDIR。
  2. 与Linux不同,基本目录并不总是从/workdir开始,基本目录
  3. 当POD上有多个容器时,需要使用-c参数指定要与复制操作一起使用的容器

kubectl cp的快速示例:这是将index. html文件从POD的 /var/www/html复制到本地 /tmp目录的命令。

当文档根目录是workdir或映像的默认目录时,无需提及完整路径。

kubectl cp apache-pod:index.html /tmp

为了减少混淆,您可以始终像这样编写完整路径

kubectl cp apache-pod:/var/www/html/index.html /tmp

*另请参阅此堆栈问题以获取更多信息。