我有一个卡夫卡集群在库伯内特斯创建使用斯特里齐。
apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
metadata:
name: {{ .Values.cluster.kafka.name }}
spec:
kafka:
version: 2.7.0
replicas: 3
storage:
deleteClaim: true
size: {{ .Values.cluster.kafka.storagesize }}
type: persistent-claim
rack:
topologyKey: failure-domain.beta.kubernetes.io/zone
template:
pod:
metadata:
annotations:
prometheus.io/scrape: 'true'
prometheus.io/port: '9404'
listeners:
- name: plain
port: 9092
type: internal
tls: false
- name: tls
port: 9093
type: internal
tls: true
authentication:
type: tls
- name: external
port: 9094
type: loadbalancer
tls: true
authentication:
type: tls
configuration:
bootstrap:
loadBalancerIP: {{ .Values.cluster.kafka.bootstrapipaddress }}
brokers:
{{- range $key, $value := (split "," .Values.cluster.kafka.brokersipaddress) }}
- broker: {{ (split "=" .)._0 }}
loadBalancerIP: {{ (split "=" .)._1 | quote }}
{{- end }}
authorization:
type: simple集群被创建,向上,我能够创建主题并生成/消费到/从主题。问题是,如果我成为卡夫卡经纪人中的一个,我就会看到间歇性的错误。
INFO [SocketServer brokerId=0] Failed authentication with /10.240.0.35 (SSL handshake failed) (org.apache.kafka.common.network.Selector) [data-plane-kafka-network-thread-0-ListenerName(EXTERNAL-9094)-SSL-9]
INFO [SocketServer brokerId=0] Failed authentication with /10.240.0.159 (SSL handshake failed) (org.apache.kafka.common.network.Selector) [data-plane-kafka-network-thread-0-ListenerName(EXTERNAL-9094)-SSL-11]
INFO [SocketServer brokerId=0] Failed authentication with /10.240.0.4 (SSL handshake failed) (org.apache.kafka.common.network.Selector) [data-plane-kafka-network-thread-0-ListenerName(EXTERNAL-9094)-SSL-10]
INFO [SocketServer brokerId=0] Failed authentication with /10.240.0.128 (SSL handshake failed) (org.apache.kafka.common.network.Selector) [data-plane-kafka-network-thread-0-ListenerName(EXTERNAL-9094)-SSL-1]在检查了这些IP 10.240.0.35、10.240.0.159、10.240.0.4、10.240.0.128之后,我发现它们都与kube-system命名空间中的pods相关,这些名称空间是作为Kafka集群部署的一部分隐式创建的。

知道有什么不对吗?
发布于 2021-04-08 09:10:35
我不认为这一定是错误的。您似乎有某个应用程序试图连接到代理,而没有正确配置TLS。但是,当连接被转发时,IP可能会被屏蔽--所以它不再需要真正的外部IP了。这些都可以是从配置错误的客户端到试图打开TCP连接的一些健康检查(例如,根据您的环境,负载均衡器可以这样做)。
不幸的是,很难找到它们的真正来源。您可以尝试通过whoeevr拥有它来自的IP地址的日志来跟踪它,就像从其他人那里转发它一样。您还可以尝试使用Java属性javax.net.debug=ssl在Kafka中启用TLS调试。但在某些情况下,这可能只会对配置错误的客户端有所帮助,而对某些TPC探针没有帮助,这也会使在日志中很难找到正确的位置,因为它还会转储使用TLS的复制流量等。
https://stackoverflow.com/questions/66996693
复制相似问题