【发布时间】:2021-10-01 08:35:29
【问题描述】:
我有一个带有部署“X”的 k8s 集群(使用 OKD),有 1 个 pod“X_1”,并且该部署的卷中有一个文件“config.yaml”,用于配置正在运行的应用程序的某些方面。
此文件在ConfigMap 中设置为
data:
x.config.file: |-
...
它与部署共享为:
template:
metadata:
creationTimestamp: null
labels:
app: x
deploymentconfig: x
spec:
volumes:
- name: config
configMap:
name: x-config
items:
- key: x.config.file
path: config.yaml
defaultMode: 420
在这个 pod 中运行的应用程序有一个 FileWatcher,它会在“config.yaml”文件被修改时检查它,它会根据文件的新状态更改其内部配置。
有没有办法在 k8s 中更改这个“config.yaml”文件,以便每个正在运行的 pod(在我的情况下只有一个,但是)获得新配置?
备选方案
有没有办法设置 k8s pod 以交互方式运行应用程序,因此终端选项卡中的命令直接转到应用程序(因此,以这种方式更改配置,而不是使用文件)。
更新
我已经检查过修改 ConfigMap,它实际上修改了内部文件。我 cat 来自终端的文件,它实际上会更新(有时需要时间)。
但问题是文件更新后没有调用inotify 回调。
【问题讨论】:
-
如果您更新 ConfigMap,mounted copies of it should get updated automatically。这对你有用吗?
标签: kubernetes kubernetes-pod configmap file-watcher okd