【问题标题】:How do I mount data into persisted storage on Kubernetes and share the storage amongst multiple pods?如何将数据挂载到 Kubernetes 上的持久存储中并在多个 pod 之间共享存储?
【发布时间】:2020-01-12 10:38:00
【问题描述】:

我是 Kubernetes 的新手,我正在尝试了解处理与 k8 pod 交互的敏感持久数据的最有效和最安全的方法。我在 k8s 集群中启动 pod 时有以下要求:

  • pod 应该具有持久存储。
  • 即使 pod 崩溃或重新启动,pod 内的数据也应该是持久的。
  • 我应该能够轻松地将数据从 hostPath 添加或删除到 pod 中。 (不确定这是否可行,因为我不知道如果 pod 在多节点环境中的新节点上启动,数据将如何表现。是否所有节点都可以访问同一 hostPath 上的数据?)

目前,我一直在 GKE 上使用带有持久卷声明的 StatefulSets。我使用的图像有如下几个限制:

  • 我必须在 Pod 启动之前将配置文件挂载到 Pod 中。 (我目前正在使用configmaps来传递配置文件)
  • 出现的 pod 创建自己的 TLS 证书,我需要将其传递给其他 pod。 (目前我没有适当的流程来执行此操作,因此已手动将这些证书复制粘贴到其他 Pod 中)

那么,如何维护一个通用的持久存储来处理多个 pod 之间的敏感数据,以及如何将预配置的数据添加到这个存储中?任何指导或建议表示赞赏。

【问题讨论】:

    标签: kubernetes google-kubernetes-engine persistent-volumes volumes


    【解决方案1】:

    我相信这份关于创建具有多个读取器的永久性磁盘 [1] 的文档正是您所寻找的。但是,您将只能从磁盘读取 pod,因为 GCP 不支持“WRITEMANY”。

    关于主机路径,挂载点在 pod 上,卷是节点上的目录。我相信主机路径仅限于单个节点。

    [1]https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/readonlymany-disks [2]https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes

    【讨论】:

    • 在 GCE 永久磁盘之外还有其他存储选项,您可能需要考虑使用 nfs 存储来支持您的卷,因为它们支持 readwritemany
    猜你喜欢
    • 2018-08-25
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 2019-01-11
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    相关资源
    最近更新 更多