Kubernetes 如何将Configmap添加到StatefulSet中的特定Pod?
我想知道如何将ConfigMap添加到StatefulSet生成的特定pod 我已经看过规范,但我不知道如何确保pod只挂载带有特定标签的ConfigMap。Kubernetes 如何将Configmap添加到StatefulSet中的特定Pod?,kubernetes,statefulset,Kubernetes,Statefulset,我想知道如何将ConfigMap添加到StatefulSet生成的特定pod 我已经看过规范,但我不知道如何确保pod只挂载带有特定标签的ConfigMap。 我已经准备好了一个容器形式的解决方案。不过,我还是想知道这是否可以开箱即用。你不能威胁与特殊吊舱相同状态集内的吊舱。因为您只能指定一个对整个集合有效的PodSpec 您可以做的是,在每个pod中装载所有版本的配置文件,并运行一个entrypoint脚本,该脚本根据pod名称使用不同的配置文件,但这仍然是一种攻击。我没有例子可以展示,但这应
我已经准备好了一个容器形式的解决方案。不过,我还是想知道这是否可以开箱即用。你不能威胁与特殊吊舱相同状态集内的吊舱。因为您只能指定一个对整个集合有效的
PodSpec
您可以做的是,在每个pod中装载所有版本的配置文件,并运行一个entrypoint脚本,该脚本根据pod名称使用不同的配置文件,但这仍然是一种攻击。我没有例子可以展示,但这应该很容易一个基于变异Webhook的更优雅的解决方案可以解决这个确切的问题 本质上,它在
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的相同命名空间中
在项目文档中有更高级的注释用法。谢谢。我只是想知道这是否可行。我已经有了解决办法。我使用initContainer将数据从ConfigMaps导入为每个pod创建的PersistentVolume。容器将检查当前主机名,并在单独的目录中检查包含当前主机名的路径。如果是这样,它会将文件复制到PersistentVolume中。它很难看,我以后会搬走的。现在它可以工作了。我发现了这个问题,这正是我想要的。。。是否可以为statefullset中的每个pod提供特定的configMap?还是使用“提及解决方案”的唯一选项?谢谢,答案仍然适用