在Minikube上配置Kong Ingress实现Apache NiFi API路由遇阻求助
Kong Ingress Controller 配置NiFi路由失败排查方案
1. 修复Host头与域名解析问题
- 你的Ingress规则绑定了
kong.example主机名,直接用$PROXY_IP访问时未携带Host头,Kong无法匹配对应路由。执行curl时必须指定Host头:curl -i -H "Host: kong.example" http://$PROXY_IP/nifi-api/... - 同时需在本地
hosts文件中添加映射,将kong.example指向Minikube集群IP(执行minikube ip获取):{MINIKUBE_IP} kong.example
2. 纠正路径转发配置(核心问题)
你当前设置了konghq.com/strip-path: 'true',但NiFi的API根路径本身就是/nifi-api,这会导致Kong转发请求时移除/nifi-api前缀,最终转发到NiFi的路径变成/...,而NiFi实际期望的路径是/nifi-api/...,因此无法匹配路由。
调整方式二选一:
- 方式一:关闭路径剥离,将注释改为:
konghq.com/strip-path: 'false' - 方式二:保留路径剥离,同时添加路径重写,让Kong转发时自动补上
/nifi-api前缀:annotations: konghq.com/strip-path: 'true' konghq.com/rewrite: '/nifi-api'
3. 验证NiFi Service集群内可达性
在Minikube集群内临时启动测试Pod,确认NiFi服务可正常访问:
kubectl run -it --rm busybox --image=busybox:1.28 -- wget -O- http://nifi:30026/nifi-api/
如果访问失败,检查NiFi Service配置:
- 确认Service的
port.number对应NiFi Pod的正确端口(NiFi默认API端口为8080,若使用NodePort类型Service,集群内访问应使用ClusterIP端口而非NodePort) - 确认NiFi Pod处于Running状态,且端口映射正确
4. 检查Kong路由与服务状态
- 确认Ingress资源已被Kong正确处理:
查看输出中kubectl get ingress nifi-api-routingADDRESS字段是否已填充,状态为Ready - 端口转发Kong Admin服务,查看已创建的路由和服务:
访问kubectl port-forward service/kong-admin 8001:8001http://localhost:8001/services和http://localhost:8001/routes,确认对应服务(指向nifi:30026)和路由(host为kong.example、path为/nifi-api)已存在
内容的提问来源于stack exchange,提问作者Mandroid
相关产品推荐
相关产品推荐

