【问题标题】:Run a pod with tar and try to push file into the mount point使用 tar 运行 pod 并尝试将文件推送到挂载点
【发布时间】:2021-04-27 13:41:55
【问题描述】:

我们的基本需求是检查我们是否能够将文件复制/推送到挂载点。为此,建议我使用 tar 运行 pod 并尝试将文件推送到挂载点。我在网上搜索并得到以下命令:
-> kubectl cp [file-path] [pod-name]:/[path](虽然没有给出任何错误,但此命令不起作用,并且文件在提到的位置不可见。)

-> 使用以下命令验证远程 pod 中是否存在文件:

 kubectl exec <pod_name> -- ls -la /  

-> 找到以下使用 tar 选项的命令,但我不想排除任何文件,因此不确定 如何继续:

kubectl exec -n <some-namespace> <some-pod> -- tar cf - --exclude='pattern' /tmp/foo | tar xf - -C 
   /tmp/bar  

-> 还有其他 tar 选项可以帮助我将文件推送到挂载点吗?
此外,kubectl cp help 命令表示必须存在 tar 二进制文件才能进行复制。也许这就是我无法复制的原因。但是,我不知道如何检查 tar 二进制文件的存在以及如果它不存在如何获取它。请帮我解决这个问题。

【问题讨论】:

  • 嗨@Muskan Sharma,我在几种情况下测试了命令kubectl cp [file-path] [pod-name]:/[path],它总是对我有用。如果您没有收到任何错误,则应表示复制成功。确保使用以下命令检查正确的位置:`kubectl exec -- ls -la /. It should be: kubectl exec -- ls -la [path]`。但是,以这种方式放置文件并不是一个好主意。文件系统不是持久的,您的文件将在 pod 重新启动后消失。您是否尝试过@Harsh Manvar 的解决方案?您也可以使用 StatefulSets 来做到这一点。
  • 这里有更多关于 StatefulSets 的信息:kubernetes.io/docs/concepts/workloads/controllers/statefulset

标签: kubernetes push tar kubernetes-pod mount-point


【解决方案1】:

我不确定为什么cp 命令对您不起作用。但是,我尝试在 pod 中添加一个 tar 文件,并且成功了。

我使用了以下命令:

kubectl cp ./<TAR FILE PATH> <NAMESPACE>/<POD NAME>:/<INSIDE POD PATH>

将这样的文件添加到 pod 并不是最佳做法。您还可以在 docker 映像的构建过程中初始化容器或添加文件。您也可以选择使用卷挂载。

【讨论】:

    猜你喜欢
    • 2018-05-01
    • 2019-10-22
    • 2021-12-14
    • 2019-09-27
    • 2020-08-09
    • 2021-06-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多