gpt4 book ai didi

kubernetes - 如何从 kubernetes 集群内提供的服务访问安装在 kubernetes 集群外的 kafka

转载 作者:行者123 更新时间:2023-12-02 12:27:50 24 4
gpt4 key购买 nike

我的设置是这样的,我有一个作为 minikube 集群的一部分提供的生产者服务,它正在尝试将消息发布到主机上运行的 kafka 实例。

我写了一个kafka服务和端点yaml如下:

kind: Service
apiVersion: v1
metadata:
name: kafka
spec:
ports:
- name: "broker"
protocol: "TCP"
port: 9092
targetPort: 9092
nodePort: 0
---
kind: Endpoints
apiVersion: v1
metadata:
name: kafka
namespace: default
subsets:
- addresses:
- ip: 10.0.2.2
ports:
- name: "broker"
port: 9092

端点中提到的 minikube 集群内部主机的 ip 地址是从以下命令获取的:

minikube ssh "route -n | grep ^0.0.0.0 | awk '{ print \$2 }'"

我面临的问题是,当生产者第一次尝试发布消息时,主题正在创建,但没有消息写入该主题。

深入研究 pod 日志,我发现生产者正在尝试连接到本地主机上的 kafka 实例或其他东西(不太确定)。

2020-05-17T19:09:43.021Z [warn] org.apache.kafka.clients.NetworkClient [] - 
[Producer clientId=/system/sharding/kafkaProducer-greetings/singleton/singleton/producer]
Connection to node 0 (omkara/127.0.1.1:9092) could not be established. Broker may not be available.

接下来我怀疑我可能需要修改 server.properties 进行以下更改:

listeners=PLAINTEXT://localhost:9092

然而,这导致了日志中 ip 地址的更改:

2020-05-17T19:09:43.021Z [warn] org.apache.kafka.clients.NetworkClient [] - 
[Producer clientId=/system/sharding/kafkaProducer-greetings/singleton/singleton/producer]
Connection to node 0 (omkara/127.0.0.1:9092) could not be established. Broker may not be available.

我不确定这里必须提到什么 ip 地址?或者什么是替代解决方案?如果甚至可以从 kubernetes 集群内部连接到安装在 kubernetes 集群外部的 kafka 实例。

最佳答案

由于生产者 kafka 客户端与代理在同一个网络上,我们需要像这样配置一个额外的监听器:

listeners=INTERNAL://0.0.0.0:9093,EXTERNAL://0.0.0.0:9092
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
advertised.listeners=INTERNAL://localhost:9093,EXTERNAL://10.0.2.2:9092
inter.broker.listener.name=INTERNAL

我们可以像这样验证主题中的消息:

kafka-console-consumer.sh --bootstrap-server INTERNAL://0.0.0.0:9093 --topic greetings --from-beginning
{"name":"Alice","message":"Namastey"}

您可以找到有关了解和配置 kafka 监听器的详细说明 here .

关于kubernetes - 如何从 kubernetes 集群内提供的服务访问安装在 kubernetes 集群外的 kafka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61869154/

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