Kubernetes 如何将一个不同的秘密装入由StatefulSet管理的每个Pod中?
我有3个不同的库伯尼特斯秘密,我想把每个秘密装入它自己的Pod,由一个有3个副本的状态集管理 是否可以将StatefulSet配置为将每个机密装入其自己的Pod中?不太可能。StatefulSet(以及任何工作负载控制器)只允许一个pod定义模板(它可以有多个容器)。问题是一个StatefulSet被设计为有N个副本,因此可以有N个秘密。它必须是一个SecretStatefulSet:一个不同的控制器 一些解决方案:Kubernetes 如何将一个不同的秘密装入由StatefulSet管理的每个Pod中?,kubernetes,statefulset,kubernetes-statefulset,Kubernetes,Statefulset,Kubernetes Statefulset,我有3个不同的库伯尼特斯秘密,我想把每个秘密装入它自己的Pod,由一个有3个副本的状态集管理 是否可以将StatefulSet配置为将每个机密装入其自己的Pod中?不太可能。StatefulSet(以及任何工作负载控制器)只允许一个pod定义模板(它可以有多个容器)。问题是一个StatefulSet被设计为有N个副本,因此可以有N个秘密。它必须是一个SecretStatefulSet:一个不同的控制器 一些解决方案: 您可以定义一个包含所有播客所需的所有秘密的单个播客。缺点是你必须在豆荚间分享
- 您可以定义一个包含所有播客所需的所有秘密的单个播客。缺点是你必须在豆荚间分享秘密。例如:
apiVersion: v1 kind: Secret metadata: name: mysecret type: Opaque data: pod1: xxx pod2: xxx pod3: xxx ... podN: xxx
- 使用类似的工具,并使用诸如
、pod1
、pod2
、…pod3
等密钥远程存储您的秘密。您也可以使用。在国际海事组织看来,这似乎是一个更为坚实的解决方案,但实施起来可能需要更长的时间podN
在任何情况下,您都必须确保机密的数量与您所在州的播客数量相匹配。我想这正是您要寻找的 本质上,它在
PodSpec
模板上使用自定义注释,如:
annotations:
spoditor.io/mount-volume: |
{
"volumes": [
{
"name": "my-volume",
"secret": {
"secretName": "my-secret"
}
}
],
"containers": [
{
"name": "nginx",
"volumeMounts": [
{
"name": "my-volume",
"mountPath": "/etc/secrets/my-volume"
}
]
}
]
}
现在,StatefulSet的每个Pod中的nginx
容器将尝试以my secret-{Pod ordinal}
的模式装载自己的专用机密
您只需确保my-secret-0
、my-secret-1
等存在于StatefulSet的相同命名空间中
在项目文档中有更高级的注释用法。谢谢,是的,我也这么认为-讽刺的是,我正在尝试运行Hashicorp Vault/Consor,但会使用类似于您建议的东西作为输入,我已经添加了详细的说明,说明了它的帮助。感谢您花时间修复。