Starrocks部署到K8S环境,flink无法读取表数据,报错 Unknown Host

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】Starrocks部署到K8S环境,flink无法读取表数据,报错 Unknown Host
【背景】在K8S 1.23.7环境下,部署3.1.11版本的starrocks,1个fe 3个cn,一个fe proxy。
starrocks部署到k8s,也安装了proxy pod。通过flink测试写入读取,写入是可以的,读取会爆unknownhostexception。我看git有相关issues,老师能帮忙看看吗
https://github.com/StarRocks/starrocks-kubernetes-operator/issues/268
【业务影响】
【是否存算分离】 是存算分离
【StarRocks版本】3.1.11
【集群规模】1个fe 3个cn,一个fe proxy。
【机器信息】pod都为 4G8核
【联系方式】 zhangyuchen03@xinye.com
【附件】


建表语句
CREATE TABLE test.table1
(
id int(11) NOT NULL COMMENT “用户 ID”,
name varchar(65533) NULL COMMENT “用户姓名”,
score int(11) NOT NULL COMMENT “用户得分”
)
ENGINE=OLAP
PRIMARY KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES (
“replication_num” = “1”
);

测试使用的flink代码 starrocks连接器版本1.2.8_flink1.14_2.12

fe proxy service


fe service

经过排查是
先会发送请求 http://10.114.16.189:30181/api/test/table1/_query_plan 得到tablet所在的cn节点,
flink task所在节点会直接请求pod所在的ip,当时外部ip访问K8S内部ip 无法访问。

debug 发现配置参数scan.be-host-mapping-list 有 be host映射mapping
创建一个service 只指向一个 cn pod 并使用nodeport的方式对外暴露
host映射 配置pod域名 和 宿主机ip+nodeport端口 测试可以访问数据。



但是这样做 有很多需要手动处理,并且cn失去了 自动扩缩容的能力

社区的老师 可以帮忙看看吗

没办法, 这是网络隔离引入的问题. 只能把Flink也部署到k8s上, 这样flink与sr处于同一网络, DNS也可以正常解析.