我已经nifi.properties
将Kubernetes ConfigMap
. 当我部署 NiFi(作为StatefulSet
)时,我希望这个nifi.properties
文件供我刚刚部署的 NiFi 使用。为此,我为 Container 添加了一个卷ConfigMap
并将其安装在 Container 中。相关的statefulset.yaml
看起来像这样:
...
containers:
- name: 'myName'
image: 'apache/nifi:latest'
ports:
- name: http
containerPort: 8080
protocol: TCP
- name: http-2
containerPort: 1337
protocol: TCP
volumeMounts:
- name: 'nifi-config'
mountPath: /opt/nifi/nifi-1.6.0/conf/nifi.properties
volumes:
- name: 'nifi-config'
configMap:
name: 'nifi-config'
...
我认为这不起作用,因为 NiFi 已经在运行并且nifi.properties
文件被服务锁定。无法创建 pod,出现错误:...Device or resource is busy
. 我也尝试了该bootstrap.conf
文件,该文件有效,但我认为 NiFi 服务无法识别其中的更改,因为它必须重新启动。
我已经在纯 Docker 上部署 NiFi 时遇到了同样的问题,我通过停止容器、复制文件和启动容器来解决问题;不是很漂亮,但工作。
使用环境变量来改变 NiFi 中的值也不是一种选择,因为在那里改变参数的可能性非常有限。
仅 NiFi 不会出现此问题。我认为在很多情况下,有人想要更改在其中运行的系统的配置Kubernetes
,所以我希望有任何解决方案来处理这个问题。