【发布时间】: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