如何在不重新生成configmap的情况下将已经生成的ConfigMap拖到新的pod中?

时间:2020-03-12 19:55:19

标签: kubernetes kubernetes-pod

我有一个Kustomization文件,该文件正在生成ConfigMap并按预期方式运行。我需要能够创建一个新的pod,它可以从相同的configMap中提取环境变量,而无需重新生成configMap。 换句话说,我必须这样做:

envFrom:
    - configMapRef:
        name: config-name-HASH

但是我想这样做:

envFrom:
    - configMapRef:
        name: config-name

,无需使用kustomize重新生成ConfigMap。 我发现PodPresets似乎可以解决,但这是在Alpha中,因此对我的组织不利。

1 个答案:

答案 0 :(得分:1)

那是不可能的。尽管ConfigMap卷是就地自动更新的(因此您可以对其进行切换,并使您的应用在更新时重新读取文件),但是仅在以下情况下才检查从ConfigMap中提取的环境变量(或Secret,所有这两者均适用)吊舱启动。通常的解决方法是将configmap的校验和或生成ID作为注释放置在pod模板中,这会通过Deployment,StatefulSet或DaemonSet控制器自动触发滚动更新。