我有 3 个不同的 Kubernetes Secret,我想将每个 Secret 挂载到自己的 Pod 中,由具有 3 个副本的 StatefulSet 管理。
是否可以配置 StatefulSet,使每个 Secret 都挂载到自己的 Pod 中?
最佳答案
不是真的。 StatefulSet(以及与此相关的任何工作负载 Controller )仅允许单个 Pod 定义模板(它可以有多个容器)。问题在于 StatefulSet 被设计为具有 N 个副本,因此您可以拥有 N 个 secret 。它必须是一个 SecretStatefulSet:一个不同的 Controller 。
一些解决方案:
您可以定义一个 Kubernetes secret其中包含所有 pod 所需的所有 secret 。缺点是您必须在 Pod 之间共享 secret 。例如:
apiVersion: v1 kind: Secret metadata: name: mysecret type: Opaque data: pod1: xxx pod2: xxx pod3: xxx ... podN: xxx
使用类似 Hashicorp's Vault 的内容并使用
pod1
、pod2
、pod3
、...podN
等 key 远程存储您的 secret 。您还可以使用HSM 。在我看来,这似乎是更可靠的解决方案,但实现起来可能需要更长的时间。
在所有情况下,您都必须确保 Secret 数量与 StatefulSet 中的 Pod 数量相匹配。
关于kubernetes - 如何将单个不同的 Secret 安装到 StatefulSet 管理的每个 Pod 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54876279/