我正在尝试做的事情:
我正在尝试在 kubernetes 中将 nifi 作为单个 Pod 有状态集运行,并将持久卷附加到
/mnt/
并在其中安装了一些配置映射 /mnt/
我尝试过的:
nifi.properties
作为配置映射,当我安装在 mountPath
或 subPath
中时,但像这样安装替换了 /opt/nifi/nifi-current/conf/
中存在的所有其他文件,并且 Pod 无法启动。
我如何安装 nifi.properties: - name: nifi-properties
mountPath: /opt/nifi/nifi-current/conf/nifi.properties
subPath: nifi.properties
volumes:
- name: nifi-properties
configMap:
name: nifi-properties
启动 nifi pod 时出现以下错误。
File [/opt/nifi/nifi-current/conf/nifi.properties] replacing [nifi.web.https.port]
sed: cannot rename /opt/nifi/nifi-current/conf/sedROXqjT: Device or resource busy
但是,如果我以与上面相同的方式安装
zookeeper.properties
。 Pod 可以正常启动,不会出现任何错误。
env
NIFI_PROPERTIES_FILE=/mnt/nifi.properties
。我需要什么:
nifi.properties
文件。/opt/nifi/nifi-current/conf/
中挂载一些配置文件(存在于conf/中)而不覆盖其他默认配置。如果可能的话,请与我分享一些关于如何将 nifi 迁移到 k8s 或在 kubernetes 上开始使用 nifi 的好文章/视频/课程。
我最近遇到了同样的问题。我发现NiFi的启动脚本使用sed修改nifi.properties。但是,如果安装该文件,它将是只读的。我通过修改YAML文件解决了这个问题,如下:
volumes:
- ./config/nifi/nifi.properties:/opt/nifi/nifi-current/conf/nifi-orig.properties
entrypoint: /bin/bash
command: |
-c "
cp /opt/nifi/nifi-current/conf/nifi-orig.properties /opt/nifi/nifi-current/conf/nifi.properties && \
/opt/nifi/scripts/start.sh
"