You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EKS集群中Kafka与Zookeeper连接故障排查求助

问题分析与解决方案

问题根源

你的部署存在两个核心冲突:

  1. 同时启用了Kafka Chart自带的Zookeeper(zookeeper.enabled=true)和外部独立部署的Zookeeper,导致集群内存在两套独立的Zookeeper集群,Kafka Broker无法正确绑定到预期的Zookeeper服务,引发DNS解析和内部连接失败。
  2. Kafka部署参数中replicaCount=3与broker.replicaCount=1冲突,导致Broker集群规模配置混乱。

解决步骤

1. 清理现有错误部署

helm uninstall kafka zookeeper -n kafka
# 可选:清理残留的持久化存储,避免旧数据干扰
kubectl delete pvc -n kafka --all

2. 重新部署独立Zookeeper集群

helm install zookeeper bitnami/zookeeper \
  --set replicaCount=3 \
  --set auth.enabled=false \
  --set allowAnonymousLogin=true \
  --set persistence.accessModes={ReadWriteOnce} \
  --set persistence.size=1Gi \
  --set podLabels."app\.kubernetes\.io/version"="1.0" \
  -n kafka

3. 部署非Kraft模式的Kafka(禁用内部Zookeeper,绑定外部Zookeeper)

helm install kafka bitnami/kafka \
  --set zookeeper.enabled=false \
  --set controller.replicaCount=0 \
  --set replicaCount=3 \
  --set kraft.enabled=false \
  --set autoCreateTopicsEnable=true \
  --set persistence.accessModes={ReadWriteOnce} \
  --set persistence.size=1Gi \
  --set podLabels."app\.kubernetes\.io/version"="1.0" \
  --set externalZookeeper.servers=zookeeper.kafka.svc.cluster.local \
  -n kafka

验证操作

  1. 等待所有Pod进入Running状态:
kubectl get po -n kafka
  1. 使用集群内的kafka-client测试消息收发:
# 进入客户端Pod
kubectl exec -it kafka-client -n kafka -- bash

# 发送测试消息
kafkacat -b kafka.kafka.svc.cluster.local:9092 -t test-topic -P <<< "Hello Kafka"

# 消费测试消息
kafkacat -b kafka.kafka.svc.cluster.local:9092 -t test-topic -C

内容的提问来源于stack exchange,提问作者SayaliT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 15:47:34