DOCKER部署KAFKA - KRAFT模式 踩坑记录

背景介绍:

我想适用docker搭建Kafka KRAFT集群,节点是:

序号 节点名称 节点地址
1 kafka1 192.168.100.234
2 kafka2 192.168.100.235
3 kafka3 192.168.100.236

错误描述

当我启动首个Kafka节点时,Kafka容器启动失败,报错内容如下:

[root@db mintunnel_234]# docker logs -f kafka1
kafka 09:33:44.18 INFO  ==>
kafka 09:33:44.18 INFO  ==> Welcome to the Bitnami kafka container
kafka 09:33:44.18 INFO  ==> Subscribe to project updates by watching https://github.com/bitnami/containers
kafka 09:33:44.19 INFO  ==> Did you know there are enterprise versions of the Bitnami catalog? For enhanced secure software supply chain features, unlimited pulls from Docker, LTS support, or application customization, see Bitnami Premium or Tanzu Application Catalog. See https://www.arrow.com/globalecs/na/vendors/bitnami/ for more information.
kafka 09:33:44.19 INFO  ==>
kafka 09:33:44.19 INFO  ==> ** Starting Kafka setup **
kafka 09:33:44.37 WARN  ==> Kafka has been configured with a PLAINTEXT listener, this setting is not recommended for production environments.
kafka 09:33:44.41 INFO  ==> Initializing Kafka...
kafka 09:33:44.42 INFO  ==> No injected configuration files found, creating default config files
kafka 09:33:45.02 INFO  ==> Initializing KRaft storage metadata
kafka 09:33:45.02 INFO  ==> Formatting storage directories to add metadata...
Picked up JAVA_TOOL_OPTIONS:
All of the log directories are already formatted.kafka 09:33:48.00 INFO  ==> ** Kafka setup finished! **
kafka 09:33:48.02 INFO  ==> ** Starting Kafka **
Picked up JAVA_TOOL_OPTIONS:
[2025-03-19 09:33:48,902] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
[2025-03-19 09:33:49,301] INFO Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation (org.apache.zookeeper.common.X509Util)
[2025-03-19 09:33:49,654] INFO Registered signal handlers for TERM, INT, HUP (org.apache.kafka.common.utils.LoggingSignalHandler)
[2025-03-19 09:33:49,662] INFO [ControllerServer id=1] Starting controller (kafka.server.ControllerServer)
[2025-03-19 09:33:50,391] INFO Updated connection-accept-rate max connection creation rate to 2147483647 (kafka.network.ConnectionQuotas)
[2025-03-19 09:33:50,467] INFO [SocketServer listenerType=CONTROLLER, nodeId=1] Created data-plane acceptor and processors for endpoint : ListenerName(CONTROLLER) (kafka.network.SocketServer)
[2025-03-19 09:33:50,474] ERROR Encountered fatal fault: caught exception (org.apache.kafka.server.fault.ProcessTerminatingFaultHandler)
java.net.UnknownHostException: db: db: Name or service not knownat java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1671)at org.apache.kafka.metadata.ListenerInfo.withWildcardHostnamesResolved(ListenerInfo.java:237)at kafka.server.ControllerServer.startup(ControllerServer.scala:191)at kafka.server.KafkaRaftServer.$anonfun$startup$1(KafkaRaftServer.scala:98)at kafka.server.KafkaRaftServer.$anonfun$startup$1$adapted(KafkaRaftServer.scala:98)at scala.Option.foreach(Option.scala:407)at kafka.server.KafkaRaftServer.startup(KafkaRaftServer.scala:98)at kafka.Kafka$.main(Kafka.scala:112)at kafka.Kafka.main(Kafka.scala)
Caused by: java.net.UnknownHostException: db: Name or service not knownat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:934)at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1543)at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:852)at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1533)at java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1666)

docker-compose.yaml

  kafka:image: hub.dehuinet.com:58443/middleware/kafka:3.9.0container_name: 'kafka'network_mode: "host"volumes:- "kafka_data:/bitnami"environment:- KAFKA_ENABLE_KRAFT=yes- KAFKA_CFG_NODE_ID=1- KAFKA_CFG_PROCESS_ROLES=broker,controller- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.100.234:9092- KAFKA_CFG_BROKER_ID=1- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@192.168.100.234:9093,2@192.168.100.235:9093,3@192.168.100.236- KAFKA_KRAFT_CLUSTER_ID=LelM2dIFQkiUFvXCEcqRWA- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true- KAFKA_CFG_NUM_PARTITIONS=3- ALLOW_PLAINTEXT_LISTENER=yesulimits:memlock:soft: -1hard: -1nofile:soft: 1000000hard: 1000000extra_hosts:- "kafka1:192.168.100.234"- "kafka2:192.168.100.235"- "kafka3:192.168.100.236"

报错分析

上面的报错日志显示,KAFKA 程序尝试解析域名“db”失败,“db”是我的宿主机主机名,当前主机IP地址是“192.168.100.234”。

解决办法

去掉docker-compose.yaml文件中的extra_hosts配置即可

原因分析

因为容器使用了host网络模式,容器会共享宿主机的网络命名空间,也包括宿主机的/etc/hosts记录;
kafka在启动时会读取主机名进行解析(非host模式下,则读取容器名),extra_hosts会覆盖容器内的/etc/hosts记录,由于extra_hosts配置中未包含“db”域名的映射,所以域名解析失败。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/901623.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.19 学习记录

完成了仓库管理系统的制作,基本无bug,所展示功能都可以实现,基于 springboot 和 vue3 具体实现如下: 登录管理员页面 有仓库管理,物资管理,库存管理和统计功能仓库工作人员页面

网站测速——提升用户体验的关键

在互联网飞速发展的今天,网站已成为企业展示形象、提供服务以及用户获取信息的重要平台。而网站的速度,如同高速公路的路况,直接影响着用户的访问体验和满意度。因此,网站测速成为了网站运营和维护中不可或缺的关键环节。 网站速度对企业来说真的那么重要吗?​ 网站测速的…

表单和载荷的区别,以及python和js在处理json时的空格问题。

1、在 传载荷的时候,用json= 这样传底层会调用json.dumps来转换,如:response = requests.post(url,headers=headers,params=params,data=json.dumps(data.separators=(,":")) 2、在 传表单的时候,用data= 如:response = requests.post(url,headers=headers,…

荣誉| 触想TPC07-WIPC工控机荣获2025控制产品“新质”奖!

3月13日,第23届中国自动化与数字化“新质奖”评选颁奖典礼在无锡举办,触想自主研发的TPC07-WIPC工控机以卓越性能、灵活扩展和可靠性备受关注,获得2025控制产品“新质”奖。△ 触想代表朱涛(左四)上台领奖TPC07-WIPC系列工控机是触想面向边缘计算、机器视觉、AI智能等场景推…

汉诺塔游戏 | 数学益智游戏②

依托国产的 AI 豆包完成的网页端的汉诺塔益智游戏。前情概要 AI 辅助设计的一款数学益智游戏,汉诺塔游戏。 汉诺塔游戏body0 {font-family: Arial, sans-serif; text-align: left; background-color: #f4f4f9; display: flex; flex-direction: column; align-items: center; }…

20242801 2024-2025-2 《网络攻防实践》第3次作业

20242801 2024-2025-2 《网络攻防实践》第3次作业 一、实验内容使用tcpdump等网络流量分析工具对网络登陆过程进行嗅探,统计登陆通过中访问的ip地址信息。 使用wireshark或科来等网络分析工具,对以TELNET方式登陆BBS过程进行嗅探,查看BBS服务器的ip地址和访问端口,以及使用…

python 实验一(20241116魏铼)

课程:《Python程序设计》 班级: 2411 姓名: 魏铼 学号:20241116 实验教师:王志强 实验日期:2025年3月19日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能;(编写书中的程序,并进行调试分析,要有过程) 3.编写程序,练习变量和…

工具-安装uTools搜索工具

安装uTools工具 通过网盘分享的文件:uTools 链接: https://pan.baidu.com/s/10QoYus5aWO3b5bvTZ-c9uw?pwd=sky1 提取码: sky1 使用效果:alt + 空格键

“四预”驱动数字孪生水利:让智慧治水守护山河安澜

近年来,从黄河秋汛到海河特大洪水,从珠江流域性洪灾到长江罕见骤旱,极端天气频发让水安全问题备受关注。如何实现“治水于未发”?数字孪生水利以“预报、预警、预演、预案”(四预)为核心,正在掀起一场水利治理的智慧革命。 一、数字孪生水利:从物理世界到虚拟镜像的跃迁…

Pydantic模型继承解析:从字段继承到多态模型

title: Pydantic模型继承解析:从字段继承到多态模型 date: 2025/3/19 updated: 2025/3/19 author: cmdragon excerpt: 涵盖字段继承、属性覆盖、多态模型等关键机制。将掌握类型安全的继承体系构建方法,实现企业级数据校验方案,避免传统面向对象继承的常见陷阱。 categori…

20242428 实验一《Python程序设计》实验报告

学号20242428《Python程序设计》实验一报告 课程:《Python程序设计》 班级: 2424 姓名: 虎岳 学号:20242428 实验教师:王志强 实验日期:2025年3月19日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能;(编写书中的程序,并进行调试…

记录一次PG数据库连接数超最大值问题

报错内容: nested exception is org.postgresql.util.PSQLException: FATAL: remaining connection slots are reserved for non-replication superuser connections排查手段 : SELECT COUNT(*) FROM pg_stat_activity; 查询活跃的连接 SHOW max_connections; 查询数…