如何将数据装载到 Kubernetes 上的持久存储中并在多个 pods 之间共享存储?
How do I mount data into persisted storage on Kubernetes and share the storage amongst multiple pods?
我是 Kubernetes 的新手,我正在尝试了解处理与 k8 pod 交互的敏感持久数据的最有效和最安全的方法。我在k8s集群中启动pod时有如下需求:
- pod 应该有持久存储。
- 即使 pod 崩溃或重启,pod 内的数据也应该是持久的。
- 我应该能够轻松地将数据从 hostPath 添加或删除到 pod 中。 (不确定这是否可行,因为我不知道如果 pod 在多节点环境中的新节点上启动,数据将如何表现。是否所有节点都可以访问同一 hostPath 上的数据?)
目前,我一直在使用 StatefulSets 和 GKE 上的持久卷声明。我使用的图像有如下几个限制:
- 我必须在 Pod 启动之前将配置文件装载到 Pod 中。 (我目前使用的是configmaps来传递配置文件)
- 出现的 pod 创建了自己的 TLS 证书,我需要将其传递给其他人 pods。 (目前我没有适当的流程来执行此操作,因此一直手动将这些证书复制粘贴到其他 pods)
那么,如何维护处理多个 pods 之间的敏感数据的通用持久存储,以及如何将预配置数据添加到此存储?任何指导或建议表示赞赏。
我相信这篇关于创建具有多个读者的永久磁盘 [1] 的文档正是您要找的。但是,由于 GCP 不支持 "WRITEMANY",因此您只能从磁盘读取 pods。
关于主机路径,挂载点在 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
我是 Kubernetes 的新手,我正在尝试了解处理与 k8 pod 交互的敏感持久数据的最有效和最安全的方法。我在k8s集群中启动pod时有如下需求:
- pod 应该有持久存储。
- 即使 pod 崩溃或重启,pod 内的数据也应该是持久的。
- 我应该能够轻松地将数据从 hostPath 添加或删除到 pod 中。 (不确定这是否可行,因为我不知道如果 pod 在多节点环境中的新节点上启动,数据将如何表现。是否所有节点都可以访问同一 hostPath 上的数据?)
目前,我一直在使用 StatefulSets 和 GKE 上的持久卷声明。我使用的图像有如下几个限制:
- 我必须在 Pod 启动之前将配置文件装载到 Pod 中。 (我目前使用的是configmaps来传递配置文件)
- 出现的 pod 创建了自己的 TLS 证书,我需要将其传递给其他人 pods。 (目前我没有适当的流程来执行此操作,因此一直手动将这些证书复制粘贴到其他 pods)
那么,如何维护处理多个 pods 之间的敏感数据的通用持久存储,以及如何将预配置数据添加到此存储?任何指导或建议表示赞赏。
我相信这篇关于创建具有多个读者的永久磁盘 [1] 的文档正是您要找的。但是,由于 GCP 不支持 "WRITEMANY",因此您只能从磁盘读取 pods。
关于主机路径,挂载点在 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