【问题标题】:How can I copy files between pods or between nodes in the kubernetes cluster?如何在 Kubernetes 集群中的 Pod 之间或节点之间复制文件?
【发布时间】:2018-12-27 21:24:37
【问题描述】:

在 kubernetes 集群内部可以这样做吗?

我发现的所有示例都是从本地磁盘复制到 pod,反之亦然,或者是从节点复制到节点的唯一选择,例如通过 SSH、SCP 或其他实用程序?

【问题讨论】:

  • 这感觉像是 XY 问题,你为什么要这么做?

标签: kubernetes cluster-computing kubernetes-pod


【解决方案1】:

不可能进行集群到集群的复制。您需要使用kubectl cp 将其复制到本地,然后将文件复制回来:

kubectl cp <pod>:/tmp/test /tmp/test
kubctl cp /tmp/test <pod>:/tmp/test

如果您尝试在 pod 之间共享文件,并且只有一个 pod 需要写入权限,您可能希望在多个 pod 上挂载一个 ro 卷,或者使用像 S3 这样的对象存储。将文件复制到 pod 和从 pod 复制文件真的不应该是你经常做的事情,这是一种反模式

【讨论】:

  • 是的,我明白这一切。但现在我想制作一个中间版本,以便它工作。最初,根据需要调整所有内容,实际上是没有时间和资源来正确配置所有内容。整个想法是我想在一个节点上设置詹金斯,在另一个节点上设置应用程序。我当然明白如何正确地做每一件事。正确的方式还是有点费时间和资源的。
  • 但是等等,这就是解决方案!我有 jenkins 和 kubectl 可以访问集群。我可以直接从 jenkins 复制到 pod 共享文件夹。然后,如果 pod 突然重新创建它。然后在一般文件夹中会有一个我从詹金斯复制的文件。
【解决方案2】:

查看this 文章。

简而言之,就是这个命令:

kubectl exec pod-01 -- tar cf - /dir1 /dir2 | kubectl exec -i pod-02 -- tar xvf - -C /

【讨论】:

    【解决方案3】:

    这是一种从容器内部复制到本地计算机的方法:

    kubectl cp <file-spec-src> <file-spec-dest>
    

    例子

    kubectl cp your-pod:/path/to/file /local/path
    kubectl cp /local/path your-pod:/path/to/file
    

    【讨论】:

      猜你喜欢
      • 2019-11-07
      • 1970-01-01
      • 2019-03-18
      • 2020-05-26
      • 2021-09-17
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多