You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在VirtualBox的microk8s中通过Helm配置NiFi与Kafka双向通信

在microk8s中部署NiFi并实现与Kafka双向通信的配置方案

一、配置NiFi为NodePort服务

针对Cetic的NiFi Helm Chart,只需将服务类型改为NodePort即可,有两种操作方式:

1. 命令行直接指定参数部署

执行安装命令时覆盖默认配置:

helm install nifi cetic/nifi --set service.type=NodePort

若需要固定NodePort(避免随机分配),添加额外参数:

helm install nifi cetic/nifi --set service.type=NodePort --set service.nodePort=30080

注意:NodePort必须在集群预设范围内,默认是30000-32767

2. 自定义values.yaml部署

  1. 导出默认配置文件:
helm show values cetic/nifi > custom-values.yaml
  1. 编辑文件,修改service区块:
service:
  type: NodePort
  # 可选:指定固定端口
  nodePort: 30080
  1. 使用自定义配置安装:
helm install nifi cetic/nifi -f custom-values.yaml

二、验证NiFi外部访问

部署完成后,按以下步骤确认访问路径:

  1. 查看NiFi服务的NodePort:
kubectl get svc nifi

输出的NODEPORT列即为外部访问端口
2. 获取microk8s节点IP:

microk8s kubectl get nodes -o wide

取INTERNAL-IP列的地址
3. 访问NiFi UI:通过http://<节点IP>:<NodePort>即可访问控制台

三、实现与Kafka的双向通信

1. NiFi连接Kafka

在NiFi控制台配置Kafka处理器(如ConsumeKafkaRecord、PublishKafkaRecord)时,Kafka地址填写Kafka节点IP:Kafka NodePort即可(因Kafka已通过NodePort对外开放)。若NiFi与Kafka在同一集群,也可直接使用Kafka服务的ClusterIP和端口,通信更高效。

2. 确保网络连通

  • 确认Ubuntu虚拟机防火墙放行NiFi的NodePort端口
  • 确认microk8s集群内NiFi Pod能访问到Kafka的地址(可通过kubectl exec进入NiFi Pod ping Kafka地址验证)

四、其他尝试方案的问题修复

  • Ingress API版本过时:将Ingress资源的apiVersion改为networking.k8s.io/v1,并补充pathType字段(如pathType: Prefix)
  • helm nifi命令错误:未添加对应Helm仓库,执行以下命令后再安装:
helm repo add getindata https://getindata.github.io/apache-nifi-kubernetes/
helm repo update
helm install nifi getindata/nifi

内容的提问来源于stack exchange,提问作者wb1210

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 00:10:47