【问题标题】:How can a file inside a pod be copied to the outside?如何将 pod 内的文件复制到外部?
【发布时间】:2020-07-20 18:49:57
【问题描述】:

我有一个审计 pod,它具有生成报告文件的逻辑。目前,该文件存在于 pod 本身中。我只有一个 pod,只有一个副本。

我知道,我可以运行 kubectl cp 从我的 pod 中复制这些文件。这条命令必须在 Kubernetes 节点上执行,但是由于很多限制,任务是从 Pod 本身复制文件。

由于限制,我无法使用持久卷。我检查了 Kubernetes API,但找不到任何可以用来复制的东西。

还有其他方法可以将该文件从 pod 中复制出来吗?

【问题讨论】:

  • 你有没有研究过 Kubernetes 的卷系统将数据存储在 pod 之外,它可以在被删除和重新创建的 pod 后仍然存在的地方?或者将数据推送到数据库、消息队列或某处的云存储中?
  • 我不应该使用 kubernetes 卷。我的应用程序是一个轻量级进程,不建议使用 db。对于消息查询,同样应该有一个接收器将内容放入存储中。我没有任何云存储。我只能控制我的 pod 和我的应用程序。我认为 K8s API 是解决这个问题的好方法,但没有运气
  • @subrat 你能解释一下你在问题中提到的限制吗?
  • @OhHiMark 抱歉延迟。 1) 我的用户无法访问 pod 名称,并且它们不应该在 pod 上(执行 cp/exec)。 2)我不能使用 PVC,因为我使用 helm,我的服务是部署类型,并且我的容器在不同的用户中运行,我不能将 PV 作为我的 PVC 的输入(因为它以 root 身份安装,即使 securityContext. fsGroup 提供)。动态 PV 没用,因为每次重启 PV 都会被删除。
  • @subrat 有很多限制。请告诉我,你能在你的用例中使用边车容器吗?

标签: kubernetes kubernetes-pod


【解决方案1】:

这是一个社区 wiki 答案,旨在总结整个场景并提高可见性。随意编辑和扩展它。

考虑到所有提到的限制:

  • 不应使用 Kubernetes 卷

  • 没有云存储

  • 您的用户无法访问 pod 名称

  • 没有边车容器

您的用例的唯一解决方法是您当前使用的解决方法:

带有注解的动态 PV。"helm.sh/resource-policy": keep

使用 PVC 并明确提醒用户不要删除 命名空间

如果有人有更好的主意。随意贡献。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    • 2012-05-05
    • 2023-03-05
    • 2019-02-19
    • 2015-09-14
    • 2013-08-05
    相关资源
    最近更新 更多