【发布时间】:2018-10-10 01:44:42
【问题描述】:
在单个 Ubuntu 14.04 机器上
我遵循了相同的配置 http://dojoblog.dellemc.com/dojo/deploy-kafka-cluster-kubernetes/
我使用的是 Kubernetes 版本 v1.10.2 (我也在 yml 文件中使用 apiVersion: apps/v1。)
基本上我已经为 kafka 设置了一个 kubernetes 服务,并使用图像 wurstmeister/kafka 进行了 kafka 部署。动物园管理员工作正常。 Zookeeper 和 Kafka 服务已启动。 Kafka 部署是根据博客配置的:KAFKA_ADVERTISED_HOST_NAME = kafa 服务集群 IP 这是我的10.106.84.132
部署配置:
....
containers:
- name: kafka
image: wurstmeister/kafka
ports:
- containerPort: 9092
env:
- name: KAFKA_ADVERTISED_PORT
value: "9092"
- name: KAFKA_ADVERTISED_HOST_NAME
value: 10.106.84.132
- name: KAFKA_ZOOKEEPER_CONNECT
value: zoo1:2181
- name: KAFKA_BROKER_ID
value: "1"
- name: KAFKA_CREATE_TOPICS
value: topic1:3:3
然后我在主机上的 kafka 容器外部测试 kafka 订阅和发布,但失败如下:
root@edmitchell-virtual-machine:~# kafkacat -b 10.106.84.132:9092 -t topic1
% Auto-selecting Consumer mode (use -P or -C to override)
% ERROR: Topic topic1 error: Broker: Leader not available
总的来说,我能做到的最好的是
我使用
删除并重新创建了一个 kafka 部署- 名称:KAFKA_ADVERTISED_HOST_NAME 值:本地主机
然后我可以订阅和发布,但只能在 kafka 容器内,它不能从外部工作。如果我将值更改为 localhost 以外的任何值,则没有任何效果。
有什么想法吗? 看来 Kafka 不适合与 Kubernetes 一起使用? 也许我不应该在不使用 kubernetes 的情况下部署 Kafka..
非常感谢 编辑
谢谢,我现在更了解nodeport功能了。
我还是有同样的问题:
root@fnature-virtual-machine:~/Zookeeper# kafkacat -b 192.168.198.160:32748 -t topic1 % Auto-selecting Consumer mode (use -P or -C to override) % ERROR: Topic topic1 error: Broker: Leader not available
我按照你说的创建了nodeport服务。
kafka-nodeport NodePort 10.111.234.104 9092:32748/TCP 27m
kafka-service LoadBalancer 10.106.84.132 9092:30351/TCP 1d
我还使用以下环境删除/创建 kafka 部署:
KAFKA_ADVERTISED_PORT: 32748
KAFKA_ADVERTISED_HOST_NAME: 192.168.198.160
KAFKA_ZOOKEEPER_CONNECT: zoo1:2181
KAFKA_BROKER_ID: 1
KAFKA_CREATE_TOPICS: topic1:3:3
—
如果我从 kafka 容器内部运行以下命令,我也会收到类似的错误
“领导者不可用”。 kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic1 --from-beginning
如果我使用KAFKA_ADVERTISED_HOST_NAME: localhost 创建 kafka 部署,那么上面的命令在 kafka 容器内工作
而 192.168.198.160 是我的 Ubuntu VM 中默认接口 ens33 的 ip
我似乎找不到任何关于 kafka 的日志
【问题讨论】:
-
您是否先创建了“topic1”?
-
它是由 kafka 部署和以下环境变量 KAFKA_CREATE_TOPICS 创建的。
标签: docker apache-kafka kubernetes