gpt4 book ai didi

docker - Kubernetes 上的 Kafka 图表 : Simple test string produce + consume

转载 作者:行者123 更新时间:2023-12-02 21:14:56 30 4
gpt4 key购买 nike

我安装了孵化器 Kafka 图表。版本 kafka-0.8.5在撰写本文时。

helm install --name kafka \
--set replicas=1 \
--set persistence.enabled=false \
--set zookeeper.replicaCount=1 \
incubator/kafka

为了尝试这个,我运行了一个单独的 pod,它只是一个带有 Kafka cli 工具的 bash shell。我正在使用完全相同的 Docker 镜像 confluentinc/cp-kafka:4.1.1-2kafka-0 pod 正在使用,以便客户端和服务器之间存在完美的版本匹配:
kubectl run shell --rm -i --tty --image confluentinc/cp-kafka:4.1.1-2 -- /bin/bash

列出主题、发布消息、获取主题偏移量都可以完美运行,如下所示。但是,当我尝试运行 kafka-console-consumer并查看主题中的测试记录,它无限期挂起。为什么?
root@shell-5c6ddf5d99-tbsvm:/# /usr/bin/kafka-topics --zookeeper kafka-zookeeper:2181 --list

__confluent.support.metrics

root@shell-5c6ddf5d99-tbsvm:/# echo "abcxyz" | /usr/bin/kafka-console-producer --broker-list kafka:9092 --topic test-topic

>[2018-08-07 16:43:26,110] WARN [Producer clientId=console-producer] Error while fetching metadata with correlation id 1 : {test-topic=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)

root@shell-5c6ddf5d99-tbsvm:/# /usr/bin/kafka-topics --zookeeper kafka-zookeeper:2181 --list

__confluent.support.metrics
test-topic

root@shell-5c6ddf5d99-tbsvm:/# /usr/bin/kafka-run-class kafka.tools.GetOffsetShell --broker-list kafka:9092 --topic test-topic --time -1

test-topic:0:1

root@shell-5c6ddf5d99-tbsvm:/# /usr/bin/kafka-console-consumer --bootstrap-server kafka:9092 --from-beginning --topic test-topic

<hangs indefinitely>

仅供引用,这是一个本地 minikube 开发集群,带有最新的 minikube,带有 Kubernetes 1.10.x 服务器端和 1.10.x kubectl 客户端工具。这是一个干净的新 minikube,除了 kafka、kafka-zookeeper 和我的 shell pod 之外没有其他任何东西在运行。

此外,编写一个小型 Java 客户端测试应用程序来使用会得到类似的结果,即无限期轮询而没有消息。当我的 Java 客户端订阅 test-topic ,它永远不会收到分配给一个主题分区的通知回调。

最佳答案

这花了我几个小时,有一个 bug in minikube这会阻止卡夫卡工作。

我不熟悉 Helm 部署,但您必须确保两件事。首先,Kafka 通告的主机必须与您的 Kubernetes 服务 IP(或 kube dns 中的 DNS 名称)相同,其次,您必须将 minikube 的网络接口(interface)置于混杂模式:

minikube ssh sudo ip link set docker0 promisc on

如果你不这样做,kafka 将无法通过 Kubernetes 服务来控制自己,并且它的领导者选举会失败。我发现它在容器部署环境中非常脆弱。

关于docker - Kubernetes 上的 Kafka 图表 : Simple test string produce + consume,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51731858/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com