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

如何在OpenShift的Kubernetes中暴露9009端口以使用InfluxDB Line Protocol

解决OpenShift上QuestDB通过主机名访问InfluxDB Line Protocol(TCP)的问题

核心问题

OpenShift默认Route仅支持HTTP/HTTPS(七层协议),而InfluxDB Line Protocol使用纯TCP(四层),普通HTTP Route无法转发TCP流量。你之前尝试的常规Route不生效,就是因为这个原因。不需要给Route加/exec或/imp这类HTTP前缀——TCP协议没有路径前缀的概念。

解决方案:配置OpenShift TCP Route

你需要创建专门的TCP Route来转发8812端口的流量,步骤如下:

1. 创建TCP Route配置文件

新建questdb-tcp-route.yaml,内容如下:

apiVersion: route.openshift.io/v1
kind: Route
metadata:
  name: questdb-influx-tcp
  namespace: ci-questdb
spec:
  host: questdb-influx.your-domain.com  # 替换成你的目标主机名
  port:
    targetPort: 8812  # 对应QuestDB的Influx Line Protocol TCP端口
  tls:
    termination: passthrough  # TCP Route必须用passthrough终止TLS(如果需要加密)
    insecureEdgeTerminationPolicy: Redirect
  to:
    kind: Service
    name: questdb-test  # 选择你要绑定的稳定Service,比如LoadBalancer类型的questdb-test
    weight: 100
  wildcardPolicy: None

2. 应用配置

执行命令部署Route:

oc apply -f questdb-tcp-route.yaml -n ci-questdb

3. 验证配置

查看Route状态,确认主机名和端口绑定正常:

oc get route questdb-influx-tcp -n ci-questdb

关键注意事项

  • 确保你的目标主机名已解析到OpenShift集群的Router入口IP。
  • 如果不需要加密传输,可以去掉tls配置块,但生产环境建议启用TLS。
  • 优先绑定稳定的Service(如questdb-test LoadBalancer类型),避免依赖节点端口的NodePort服务。
  • QuestDB的Influx Line Protocol TCP端口固定为8812,不要混淆成HTTP服务的9000端口。

测试连接

用nc命令快速验证TCP连通性,或直接发送Line Protocol数据:

# 测试连通性
nc -v questdb-influx.your-domain.com 443

# 发送测试数据
echo "test_metric,tag1=val1 value=123 $(date +%s%N)" | nc questdb-influx.your-domain.com 443

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:03:16