k8s部署kafka:Socket server failed to bind to kafka.tygzmh:9092: Cannot assign requested address.

11 篇文章 0 订阅
2 篇文章 0 订阅

1、背景

项目上要求kafka中间件都要上云,构建镜像后按照本地化部署的方式部署发现无法无法正常启动:Socket server failed to bind to kafka.tygzmh:9092: Cannot assign requested address.(套接字服务器未能绑定到kafka。tygzmh:9092:无法分配请求的地址。)

kafka版本:2.13-2.8.1
zookeeper使用该版本中内置

  • 报错信息如下
    在这里插入图片描述
  • 配置如下
    在这里插入图片描述

2、原因

错误在于绑定侦听器。 KAFKA_LISTENERS对于 容器中部署是不正确的。所有代理属性都应以 开头。
此外,应该设置KAFKA_CFG_LISTENERS使用 IP0.0.0.0来接受所有接口上的所有流量

  • 修改配置文件
broker.id=1
listeners=SASL_PLAINTEXT://:9092  # 容器中添加的认证这里不需要设置任何IP信息,其他版本尚不确定
advertised.listeners=SASL_PLAINTEXT://kafka.tygzmh:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
allow.everyone.if.no.acl.found=true
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=419430400
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=zookeeper.tygzmh:2181
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0

3、结论

  • 在k8s容器中使用sasl认证部署时,listeners使用 IP:0.0.0.0来接受所有接口上的所有流量

4、小技巧

部署小技巧: 这里使用环境变量来动态设置jvm参数随pod资源限制变化,同时也可以控制是否使用sasl认证

KAFKA_HEAP_OPTS=-XX:+UseContainerSupport -XX:InitialRAMPercentage=75.0 -XX:MaxRAMPercentage=75.0 -Djava.security.auth.login.config=/opt/kafka/kafka_server_jaas.conf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值