【问题标题】:kubectl cp bitnami apache helm chart: cannot copy to exact location of pod filesystemkubectl cp bitnami apache helm chart:无法复制到 pod 文件系统的确切位置
【发布时间】:2022-11-10 19:16:55
【问题描述】:

我正在尝试使用 docker-desktop 及其 kubernetes 集群在我的本地机器上部署一个反应应用程序bitnami apache helm 图表.
我正在关注这个this tutorial
本教程让您将图像发布到公共仓库(第 2 步),我不想这样做。确实可以通过持久卷声明传递应用程序文件。
这在following tutorial 中有描述。

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

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

我的问题:

  1. 我不能使用 * 通配符,否则会出错。为了避免这种情况,我只是跑

    kubectl cp . apache-数据-pod:/数据/

    1. 此指令复制 pod 中的文件,但它会在 pod 文件系统中已存在的数据文件夹中创建另一个数据文件夹
      在这个命令之后,我的 pod 文件系统看起来像这样 我尝试执行

    kubectl cp .阿帕奇数据荚:/

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

    我需要将数据直接复制到 <my_pod>:/data/ 中。 我怎样才能实现这种行为?

    问候

【问题讨论】:

    标签: kubernetes kubectl


    【解决方案1】:

    使用以下完整路径成功运行 kubectl cp 命令:

    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 目录的命令。

      当 doc root 是工作目录或图像的默认目录时,无需提及完整路径。

      kubectl cp apache-pod:index.html /tmp
      

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

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

      *另请参阅stack question 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2019-09-17
      • 2022-11-14
      • 1970-01-01
      • 2020-11-28
      • 2022-12-22
      • 2014-06-23
      • 2023-01-26
      • 1970-01-01
      • 2019-12-19
      相关资源
      最近更新 更多