如何使 configmap 传播到 运行 pods(无需重新启动它们)

How to make configmap propagate to running pods (without restarting them)

更改 configmap 中的变量时,运行 pods 中的环境变量不会更新。

我们有一个无法轻易重启的有状态 pod。

正在尝试用

更新容器内的环境变量

export VARIABLE_TO_BE_UPDATED="new value"

持续了一段时间,但在短时间后自动回滚(可能与打开的会话有关)。

有什么方法可以在不重启 pod 的情况下以持久的方式(手动)更新这些环境变量?

您无法重新加载已装载的 ConfigMap。 ConfigMap 在容器启动之前从 API 中读取并转储到卷中,之后它保持静态。

另一种方法是使用侧卡容器,监视对这些 ConfigMap 的更改,刷新将与您的应用程序容器共享的某个卷中的副本,然后指示您的应用程序重新加载其配置。一个常见的实现是 Prometheus Rule Reloader.