kubernetes - Knative Kafka 通道调度程序无法访问 Kubernetes 集群外的 Kafka
问题描述
我正在尝试使用以下文档在 Knative 中设置 Kafka 通道调度程序:https ://github.com/knative/eventing/tree/master/contrib/kafka/config
一切都很好,只是频道调度员找不到我的 Kafka 经纪人。来自 pod 的错误kafka-channel-dispatcher-0
:
{"level":"fatal","ts":1554634078.4035408,"caller":"dispatcher/main.go:65","msg":"无法创建 kafka 调度程序。","error":"无法创建kafka client: kafka: client has run out of available brokers to talk to (Is your cluster reachable?)","stacktrace":"main.main\n\t/home/michiel/go/src/github.com/knative /eventing/contrib/kafka/cmd/dispatcher/main.go:65\nruntime.main\n\t/usr/lib/go-1.10/src/runtime/proc.go:198"}
我有一个 Kafka 节点在与 K8s 集群不同的机器上运行,但它们在同一个网络中。我尝试在不使用 Knative 的情况下通过运行带有一些 python 的容器来访问 Kafka 代理,这很成功,所以我知道代理是可以访问的。
这是 Kafka 通道调度程序配置图:
apiVersion: v1
kind: ConfigMap
metadata:
name: kafka-channel-controller-config
namespace: knative-eventing
data:
# Broker URL's for the provisioner. Replace this with the URL's for your kafka cluster.
bootstrap_servers: 10.142.15.232:9092
# Consumer mode to dispatch events from different partitions in parallel.
# By default(multiplex), partitions are multiplexed with a single go channel.
# `multiplex` and `partitions` are valid values.
## consumer_mode: partitions
我该怎么做才能联系到我的经纪人?这可能与我提供 IP 地址而不是文档示例中的 url 的事实有关:
# Broker URL's for the provisioner
bootstrap_servers: my-cluster-kafka-bootstrap.my-kafka-namespace:9092
更新: 我可以像文档中那样访问一个 srimzi kafka 集群。
解决方案
推荐阅读
- asp.net-core - 使用 AddAzureADB2C 时如何挂钩 AuthorizationCodeReceived?
- lua - 有没有办法让 Lua 5.1 支持比较元方法?
- kubernetes - 如何从 src URL 而非本地文件使用 Ansible 管理 K8s 对象?
- kubernetes - GKE K8 HPA 无法获取堆栈驱动程序指标
- android - Android中的图像缓存
- spring - 带有路径变量和请求参数的 Swagger codegen maven 插件 OpenApi 产生不工作的代码
- android - 图片正在上传旋转到我的 Android 项目中的服务器?
- angular - 数据未加载到Angular 8中的输入字段
- c# - Console.ReadLine() 在 VS Code 中不起作用,用 C# 编写代码
- android - 我想在字符串中搜索一个特定的单词,并在 android studio 中找到该单词之前显示 4 个单词和 4 个单词之后显示