2

我已经使用cetic/helm-nifi helm chart 在 Kubernetes 上部署了 Nifi。PutDatabaseRecord我必须使用进程将日志数据插入 MySQL 数据库。为此,在PutDatabaseRecord进程内部,我必须配置数据库连接 URL、数据库驱动程序类名称和数据库驱动程序位置。

在此处输入图像描述

作为数据库驱动程序位置,我在 pod 内下载了连接器 jar ( ),并在进程https://dev.mysql.com/downloads/connector/j/内配置了 MySQL 连接器 jar 文件的位置。PutDatabaseRecord这样,如果 pod 正在重新启动,我必须再次在 pod 内手动下载连接器。不推荐这样做。感谢您是否可以为此提出解决方案。

4

1 回答 1

0

查看您的 Kubernetes 配置会非常有帮助,但总体而言,您可以使用 ConfigMaps 来实现此目的 - 因为它是用于存储配置数据的标准 Kubernetes 资源。这里有更详细的描述。下面是 ConfigMap 的示例,其中 MySQL 连接器 jar 文件被挂载到 pod:


  containers:
    - name: container
      volumeMounts:
      - name: config
        mountPath: /usr/local/mysql-connector-java.jar
  volumes:
    - name: config
      configMap:
        name: config-map           
        items: 
        - key: mysql-connector-java.jar
          path: mysql-connector-java.jar
        

但是 ConfigMap 仅在您存储连接器 jar 文件时才适用,该文件的大小不超过 1 MiB。

否则,还有一个选项 - 使用 MySQL 连接器 jar 文件安装持久卷 - 如此此处所述。将持久卷挂载到 pod 中后,jar 文件将被复制到 pod - 并且可以在重新启动/重新创建后重新挂载到 pod。

于 2022-02-18T23:29:28.533 回答