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