如何在不重新生成 configmap 的情况下将已生成的 ConfigMap 拉入新的 pod?

How to pull in an already generated ConfigMap to a new pod without regenerating the configmap?

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

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

但我想这样做:

envFrom:
    - configMapRef:
        name: config-name

无需使用 kustomize 重新生成 ConfigMap。 我发现 PodPresets 似乎可以解决问题,但它处于 Alpha 阶段,因此对我的组织不利。

那是不可能的。虽然 ConfigMap 卷就地自动更新(因此您可以切换它并让您的应用程序在更新时重新读取文件),但仅当pod 已启动。通常的解决方法是将您的 configmap 的校验和或生成 ID 作为注释放在 pod 模板中,这将通过 Deployment、StatefulSet 或 DaemonSet 控制器自动触发滚动更新。