Docker部署CMAK创建集群时报AskTimeoutException错误求助
问题根因&排查步骤
配置缺失导致CMAK无法拉取Kafka元数据
你当前的Kafka配置未开放JMX端口、未明确配置监听规则,CMAK默认依赖JMX获取集群 metrics 与元数据,请求超时就会抛出AskTimeoutException。
首先修改kafka.yaml中Kafka服务的配置:
kafka: image: wurstmeister/kafka container_name: kafka ports: - "9092:9092" - "9999:9999" # 新增JMX端口映射 environment: KAFKA_ADVERTISED_HOST_NAME : 192.168.29.138 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 # 新增以下配置 KAFKA_LISTENERS: INTERNAL://0.0.0.0:9093,EXTERNAL://0.0.0.0:9092 KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:9093,EXTERNAL://192.168.29.138:9092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL KAFKA_JMX_PORT: 9999 KAFKA_JMX_HOSTNAME: 192.168.29.138
修改后重启Kafka服务。
CMAK集群创建配置错误
进入CMAK新建集群页面,检查以下配置项:
- Zookeeper Hosts 填写
zookeeper:2181,不要填写宿主机IP/localhost,CMAK与Zookeeper同属一个Docker内部网络,用服务名访问连通性更稳定 - 勾选 Enable JMX Polling 选项
- Kafka Version 选择和你部署的Kafka大版本匹配的选项,不要选择高于实际部署版本的选项
网络连通性验证
进入CMAK容器内部,执行以下命令验证网络连通:
# 验证Zookeeper连通 ping zookeeper telnet zookeeper 2181 # 验证Kafka连通 ping kafka telnet kafka 9092 telnet 192.168.29.138 9999
如果出现端口不通的情况,检查宿主防火墙、Docker网络策略配置。
版本兼容性校验
当前wurstmeister/kafka用的是latest标签,hlebalbau/kafka-manager:stable也可能存在版本不兼容问题,可以指定明确的Kafka镜像版本,比如wurstmeister/kafka:2.13-2.8.1,同时更换为官方维护的CMAK镜像,避免镜像本身存在缺陷。
内容的提问来源于stack exchange,提问作者Vincent
相关产品推荐
相关产品推荐

