在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部署
- 导出默认配置文件:
helm show values cetic/nifi > custom-values.yaml
- 编辑文件,修改
service区块:
service: type: NodePort # 可选:指定固定端口 nodePort: 30080
- 使用自定义配置安装:
helm install nifi cetic/nifi -f custom-values.yaml
二、验证NiFi外部访问
部署完成后,按以下步骤确认访问路径:
- 查看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
相关产品推荐
相关产品推荐

