我无法从网格内部连接到“外部”(网格外部)Kafka服务。在Istio网格内部,我有一个Spring Boot应用程序,该应用程序应连接到平台Kafka服务。
可以通过DNS名称访问Kafka服务(我尝试过,有可能)。要访问该服务,我使用以下配置创建了一个ServiceEntry:
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: kafka
namespace: test
spec:
hosts:
- kafka-service.foo.baa
ports:
- number: 37000
name: tls-6
protocol: tls
- number: 36200
name: tls-5
protocol: tls
- number: 36201
name: tls-4
protocol: tls
- number: 36202
name: tls-3
protocol: tls
- number: 36203
name: tls-2
protocol: tls
- number: 36204
name: tls-1
protocol: tls
resolution: DNS
location: MESH_EXTERNAL
有时我会建立连接,但有时却无法连接,我不知道该问题以及为什么它有时会起作用。
这些是一些错误消息:
org.apache.kafka.common.config.ConfigException: No resolvable bootstrap urls given in bootstrap.servers
Removing server kafka-service.foo.baa:37000 from bootstrap.servers as DNS resolution failed for kafka-service.foo.baa
我还尝试使用此注释traffic.sidecar.istio.io/excludeOutboundPorts: 37000,36200,36201,36202,36203,36204,36205
绕过流量,但是效果不佳。
如果我将DNS名称的IP地址读入作为引导服务器,则绕过功能才起作用。
请帮助。