通过Rancher管理的k8s集群部署emqx集群,集群连接报错

EMQX 自动发现逻辑获取不到k8sAPI返回的hostname。
k8sAPI返回的hostname 存储在 spec.hostname 字段。
报错信息如下:

2025-07-21T08:12:34.128672+00:00 [error] Ekka(AutoCluster): Discover error: {badkey,<<"hostname">>}, [{erlang,map_get,[<<"hostname">>,#{<<"ip">> => <<"10.42.3.58">>,<<"nodeName">> => <<"worker1">>,<<"targetRef">> => #{<<"kind">> => <<"Pod">>,<<"name">> => <<"emqx-state-0">>,<<"namespace">> => <<"test">>,<<"resourceVersion">> => <<"133562598">>,<<"uid">> => <<"114d98b2-fd05-485f-b2fb-0dce890057ef">>}}],[{error_info,#{module => erl_erts_errors}}]},{ekka_cluster_k8s,extract_host,2,[{file,"ekka_cluster_k8s.erl"},{line,124}]},{ekka_cluster_k8s,'-extract_addresses/2-lc$^1/1-1-',2,[{file,"ekka_cluster_k8s.erl"},{line,116}]},{ekka_cluster_k8s,'-extract_addresses/2-lc$^0/1-0-',2,[{file,"ekka_cluster_k8s.erl"},{line,117}]},{ekka_cluster_k8s,extract_addresses,2,[{file,"ekka_cluster_k8s.erl"},{line,118}]},{ekka_cluster_k8s,discover,1,[{file,"ekka_cluster_k8s.erl"},{line,48}]},{ekka_autocluster,discover_and_join,2,[{file,"ekka_autocluster.erl"},{line,220}]},{ekka_autocluster,'-discover_and_join/0-fun-0-',2,[{file,"ekka_autocluster.erl"},{line,190}]},{ekka_autocluster,handle_info,2,[{file,"ekka_autocluster.erl"},{line,134}]},{gen_server,try_handle_info,3,[{file,"gen_server.erl"},{line,1095}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,1183}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,241}]}]
2025-07-21T08:12:34.134229+00:00 [error] Ekka(AutoCluster): Core node discovery error {badkey,<<"hostname">>}: [{erlang,map_get,[<<"hostname">>,#{<<"ip">> => <<"10.42.3.58">>,<<"nodeName">> => <<"worker1">>,<<"targetRef">> => #{<<"kind">> => <<"Pod">>,<<"name">> => <<"emqx-state-0">>,<<"namespace">> => <<"test">>,<<"resourceVersion">> => <<"133562598">>,<<"uid">> => <<"114d98b2-fd05-485f-b2fb-0dce890057ef">>}}],[{error_info,#{module => erl_erts_errors}}]},{ekka_cluster_k8s,extract_host,2,[{file,"ekka_cluster_k8s.erl"},{line,124}]},{ekka_cluster_k8s,'-extract_addresses/2-lc$^1/1-1-',2,[{file,"ekka_cluster_k8s.erl"},{line,116}]},{ekka_cluster_k8s,'-extract_addresses/2-lc$^0/1-0-',2,[{file,"ekka_cluster_k8s.erl"},{line,117}]},{ekka_cluster_k8s,extract_addresses,2,[{file,"ekka_cluster_k8s.erl"},{line,118}]},{ekka_cluster_k8s,discover,1,[{file,"ekka_cluster_k8s.erl"},{line,48}]},{ekka_autocluster,core_node_discovery_callback,0,[{file,"ekka_autocluster.erl"},{line,104}]},{ekka_autocluster,is_node_registered,0,[{file,"ekka_autocluster.erl"},{line,302}]},{ekka_autocluster,is_discovery_complete,1,[{file,"ekka_autocluster.erl"},{line,154}]},{ekka_autocluster,handle_info,2,[{file,"ekka_autocluster.erl"},{line,135}]},{gen_server,try_handle_info,3,[{file,"gen_server.erl"},{line,1095}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,1183}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,241}]}]

环境变量为

可以去emqx operator的仓库下问一下,我k8s完全用过:new_moon_with_face:

您好,我没有使用emqx operator,是手动部署statefulset容器来搭建的集群。我用的emqx开源版5.8.7,当设置address_type为ip时,集群是正常的。如下图:

我想进行数据持久化,将address_type改为hostname是,集群就无法创建,报找不到hostname

您好,已解决,是部署的statefulset的yaml中指定的无头服务名称不对。